我将使用python pandas转换DataFrame:
l1=['andre','Marc']
l2=[5,12]
l3=[3,64]
dfWeeks=pd.DataFrame(list(zip(l1,l2,l3)), columns=['Name','22-2019','23-2019'])
dfWeeks
它看起来像这样:
Name 22-2019 23-2019
andre 5 3
Marc 12 64
我想对其进行转换并具有:
Name Number Dates
andre 5 22-2019
andre 3 23-2019
Marc 12 22-2019
Marc 64 23-2019
我尝试过数据透视表或分组,但我无法做到这一点。
谢谢。
答案 0 :(得分:2)
尝试使用pd.melt()
,更简单:
df.melt('Name',var_name='Dates',value_name='Number')
Name Dates Number
0 andre 22-2019 5
1 Marc 22-2019 12
2 andre 23-2019 3
3 Marc 23-2019 64
或者:
m=df.set_index('Name').stack().reset_index()
m.columns=['Name','Date','Number']
print(m)
Name Date Number
0 andre 22-2019 5
1 andre 23-2019 3
2 Marc 22-2019 12
3 Marc 23-2019 64
答案 1 :(得分:0)
尝试: dfWeeks.melt(id_vars ='Name')