我有下一个问题。
例如,我在熊猫中有下一个DataFrame
a b c
'x' 1 100
'y' 2 100
'z' 3 100
现在,我想从列a
中的值创建新DataFrame的标题,列b
中的值是第一行中的对应值,列c
我用于指数。
目前,我使用下一个代码:
import pandas
piv = df.pivot(index='c', columns='a')
new_df = pandas.DataFrame(piv.to_records())
输出不足以满足我的需要,因为我在新DataFrame的列名称中有b
。也许有人可以在这里告诉我一个更好的解决方案,以准确地获取下一个输出:
index 'x' 'y' 'z'
100 1 2 3
不应是数据透视表,而应是真实的DataFrame。
答案 0 :(得分:2)
您需要将值运算符添加到数据透视功能:
piv = df.pivot(index='c', columns='a', values='b')
完整示例:
piv = df.pivot(index='c', columns='a', values='b')
new_df = pd.DataFrame(piv.to_records()).rename(columns={'c':'index'})
new_df
index 'x' 'y' 'z'
0 100 1 2 3