【发布时间】:2021-10-30 15:10:10
【问题描述】:
我看到这个问题被问了多次,但其他问题的解决方案没有奏效!
我有类似的数据框
df = pd.DataFrame({
"date": ["20180920"] * 3 + ["20180921"] * 3,
"id": ["A12","A123","A1234","A12345","A123456","A0"],
"mean": [1,2,3,4,5,6],
"std" :[7,8,9,10,11,12],
"test": ["a", "b", "c", "d", "e", "f"],
"result": [70, 90, 110, "(-)", "(+)", 0.3],})
使用pivot_table
df_sum_table = (pd.pivot_table(df,index=['id'], columns = ['date'], values = ['mean','std']))
我明白了
df_sum_table.columns
MultiIndex([('mean', '20180920'),
('mean', '20180921'),
( 'std', '20180920'),
( 'std', '20180921')],
names=[None, 'date'])
所以我想将date 列移到下面一行并删除id 行。但请保留id 的名字。
通过遵循这些过去的解决方案
ValueError when trying to have multi-index in DataFrame.pivot
Removing index name from df created with pivot_table()
Resetting index to flat after pivot_table in pandas
df_sum_table = (pd.pivot_table(df,index=['id'], columns = ['date'], values = ['mean','std'])).reset_index().rename_axis(None, axis=1)
但出现错误
TypeError: 必须像
names一样传递列表。
如何删除date,但在第一列保留id?
想要的输出
@jezrael
【问题讨论】:
标签: python pandas pivot-table reshape