Python Panda将表格数据转换为列格式数据

Python Panda将表格数据转换为列格式数据,python,pandas,Python,Pandas,我有下面的表格数据,我想转换为底部的格式,以便我可以加载到我的数据库 我如何通过使用熊猫来实现它 我正在使用Python,但也欢迎使用excel方法 您需要: 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

我有下面的表格数据,我想转换为底部的格式,以便我可以加载到我的数据库

我如何通过使用熊猫来实现它

我正在使用Python,但也欢迎使用excel方法

您需要:

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

使用“<代码>空值”填充空白,然后依次执行。最后,使用

df.rename()
或本文中的更多详细信息,将列重命名为所需的列名称


你能复制粘贴你的数据,而不是图像吗?其他人更容易简单地使用该数据而不是图像中显示的数据。例如,您正在谈论:
df.melt(id_vars='Date',value_vars=['A','B','C','D',value_name='Number')
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