我有一个熊猫数据框:
>>> b'\x00$\t\x18'
b"\000$\t\030"
我想将其转换为以下形式:
df1=pd.DataFrame({
'ID':[101,102,103],
'Name':['Axel','Bob','Charles'],
'Vol Q1':[100,102,104],
'Vol Q2':[101,103,105],
'Trans Q1':[1,3,5],
'Trans Q2':[2,4,6],
})
但是我不知道怎么做。
我尝试过:
df4=pd.DataFrame({
'ID':[101,101,102,102,103,103],
'Name':['Axel','Axel','Bob','Bob','Charles','Charles'],
'Quarter':['Q1','Q2','Q1','Q2','Q1','Q2'],
'Vol':[100,101,102,103,104,105],
'Trans':[1,2,3,4,5,6]
})
但这不能提供所需的格式。它将所有这些都放在一栏中。我不知道该怎么做。
答案 0 :(得分:3)
使用pd.wide_to_long
pd.wide_to_long(df1, stubnames=['Trans', 'Vol'], sep=' ', suffix='Q\d+', i=['ID', 'Name'], j='Quarter').reset_index()
Out[31]:
ID Name Quarter Trans Vol
0 101 Axel Q1 1 100
1 101 Axel Q2 2 101
2 102 Bob Q1 3 102
3 102 Bob Q2 4 103
4 103 Charles Q1 5 104
5 103 Charles Q2 6 105