我的数据框格式为
时间|名字|价值
01/01/1970 | A | 1
02/01/1970 | A | 2
03/01/1970 | A | 1
01/01/1970 | B | 5
02/01/1970 | B | 3
我要将此数据更改为
时间| A | B
01/01/1970 | 1 | 5
02/01/1970 | 2 | 3
03/01/1970 | 1 | NA
我怎样才能在熊猫中实现这一目标?我已经在数据帧上尝试过groupby,然后加入,但它的出现正确。 提前谢谢
答案 0 :(得分:1)
使用DataFrame.pivot
(doc):
import numpy as np
df = pd.DataFrame(
{'name': ['A', 'A', 'A', 'B', 'B'],
'time': ['01/01/1970', '02/01/1970', '03/01/1970', '01/01/1970', '02/01/1970'],
'value': [1, 2, 1, 5, 3]})
print(df.pivot(index='time', columns='name', values='value'))
产量
A B
time
01/01/1970 1 5
02/01/1970 2 3
03/01/1970 1 NaN
请注意,time
现在是索引。如果您希望将其设为列,请致电reset_index()
:
df.pivot(index='time', columns='name', values='value').reset_index()
# name time A B
# 0 01/01/1970 1 5
# 1 02/01/1970 2 3
# 2 03/01/1970 1 NaN
答案 1 :(得分:0)
使用.pivot函数:
df = pd.DataFrame({'time' : [0,1,2,3],
'name': ['A','A', 'B', 'B'], 'value': [10,20,30,40]})
df.pivot(index = 'time', columns = 'name', values = 'value')