Python Panda Преобразование табличных данных в данные формата столбца - PullRequest
0 голосов
/ 31 мая 2018

Ниже приведены табличные данные, и я хочу преобразовать их в формат внизу, чтобы я мог загрузить их в свою базу данных.

Как мне добиться этого с помощью Panda?

Я являюсьиспользование Python, но метод Excel также приветствуется

enter image description here

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Используйте df.fillna(), чтобы заполнить пробел значением NULL, затем df.melt() и затем df.set_index().В конце переименуйте столбец в желаемое имя столбца с df.rename() или более подробной информацией в этой теме

In []: df
Out[]: 
   Date     A     B    C     D
0     1   NaN  54.0  435   NaN
1     2  23.0   3.0  345   NaN
2     3  43.0   4.0   78   NaN
3     4   4.0   NaN  423   NaN
4     5  34.0  54.0    4  45.0
5     6   NaN  54.0    3  87.0

In []: (
  ...: df.fillna('NULL')
  ...:     .melt(id_vars='Date', value_vars=['A','B','C','D'])
  ...:     .set_index('Date')
  ...:     .rename(columns={'variable':'Item', 'value':'Number'}))
  ...: )

Out[]: 
     Item Number
Date            
1       A   NULL
2       A     23
3       A     43
4       A      4
5       A     34
6       A   NULL
1       B     54
2       B      3
3       B      4
4       B   NULL
5       B     54
6       B     54
1       C    435
2       C    345
3       C     78
4       C    423
5       C      4
6       C      3
1       D   NULL
2       D   NULL
3       D   NULL
4       D   NULL
5       D     45
6       D     87
0 голосов
/ 31 мая 2018

Вам нужно:

data.set_index(['date']).stack(dropna=False).reset_index(name='Number').rename(columns={'level_1':'Item'})

Вывод:

   date Item    Number
0   1   A   NaN
1   1   B   12.0
2   1   C   10.0
3   1   D   NaN
4   2   A   10.0
5   2   B   30.0
6   2   C   NaN
7   2   D   NaN
8   3   A   NaN
9   3   B   NaN
10  3   C   NaN
11  3   D   90.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...