在与group by进行数据帧聚合后,我试图"压平";将标题转换为一个标题,以便将数据正确导出为CSV:
df.columns = [' '.join(col).strip() for col in df..columns.values]
df.columns
输出如下:
Index(['count', 'average', 'mean',
'sum'],
dtype='object')
如果我直接调用数据帧,我会得到不同的信息:
df
输出:
count average mean sum
col1 col2 col3
...
熊猫似乎合并了列名,但我仍然有两个级别的列描述。如果我试图寻址第二级列,它会引发一个错误:
df.drop('col1', axis = 'columns', level = 0)
输出:
AssertionError: axis must be a MultiIndex
或
df.drop('col1', axis = 'columns')
输出
KeyError: "['col1'] not found in axis"
所以我好像被夹在中间的东西卡住了。如果我将数据帧导出到CSV并再次导入,一切都很好:
df.to_csv('data.csv')
和
df = df.load_csv('data.csv')
df.drop('col1', axis = 'columns')
那么,我在这里误解和做错了什么?
您可能希望在df.groupby
语句之后执行df.reset_index()
,以"压平";根据请求发送标头。看见https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reset_index.html