pandas里怎么把有multiindex的列拉平变成一层?

  统计/机器学习 Python    浏览次数:6184        分享
0

上面这个dataframe的columns是multiindex的,打印列名

df.columns

得到

MultiIndex(levels=[['value', 'date', 'id'], ['max', 'min', '']],
           codes=[[2, 1, 0, 0], [2, 2, 0, 1]])

我想得到扁平化的列明,比如上面最后就只有四列,分别是

['id', 'date', 'value_max', 'value_min']

求助各位, 谢谢~

 

R琳   2019-09-24 03:45



   1个回答 
2


df.columns = ['_'.join(col).rstrip('_') for col in df.columns.values]

新的列明就是['id', 'date', 'value_max', 'value_min']

SofaSofa数据科学社区DS面试题库 DS面经

LiShanfei   2019-09-24 07:17

试过了,果然可以了,谢谢! - R琳   2019-09-24 09:41


  相关讨论

如何清空pandas dataframe里的全部数据但是保留列名?

去掉pandas DataFrame的index的名字

怎么改变pandas dataframe里column的顺序?

pandas df.head()报错AttributeError: 'NoneType' object has no attribute 'head'

pandas里index的问题

pandas的groupby报错:ValueError: Length of values does not match length of index

如何复制一个pandas DataFrame

pandas变形

怎么删除pandas数据框指定的第k行?

统计pandas数据框一个列字符串中每个字符串出现的次数?

  随便看看

为什么样本方差是除以n-1

plt.bar怎么设置每个bar的颜色?

Python计算两个数组的相关系数

怎么在matplotlib.pyplot的plot上加上文字?

AIC可以是负数吗?