如何从熊猫的数据透视表中生成干净的DataFrame

时间:2018-08-07 14:27:06

标签: python pandas pivot

我有下一个问题。

例如,我在熊猫中有下一个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。

1 个答案:

答案 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