python - 将 groupby MultiIndex header 合并为一个单行 header

标签 python pandas

我有这个 df:

                   hour minute  a1_UNf         a1_UNf     b1_UNf
                   max  max     mean            amax             mean
1min                    
2017-09-19 02:00:00 2   0   12561.6041666667    12565.5 12560.4821428571
2017-09-19 02:01:00 2   1   12560.0779220779    12562.5 12559.3311688312
2017-09-19 02:02:00 2   2   12558.45    12559.5 12557.7
2017-09-19 02:03:00 2   3   12556.2536231884    12560   12555.4347826087
2017-09-19 02:04:00 2   4   12555.9444444444    12557   12555.3518518519
2017-09-19 02:05:00 2   5   12554.859375    12555.5 12554.1875
2017-09-19 02:06:00 2   6   12552.5 12553.5 12551.8

我正在尝试创建新的标题,它将是 2 个顶部标题的组合(由 groupby 创建)

关于如何制作标题的任何建议 hour_max 分钟_max 等?

我试图使用:

col_name = df.columns.values

它打印:

[('hour', 'max') ('minute', 'max') ('a1_UNf', 'mean')
 ('a1_UNf', 'amax') ('b1_UNf', 'mean')]

但是我怎样才能将它作为单个 header 应用回来呢?

最佳答案

您可以将mapjoin结合使用:

df.columns = df.columns.map('_'.join)
#list comprehension alternative
#df.columns = ['{0[0]}_{0[1]}'.format(x) for x in df.columns]
print (df)
                     hour_max  minute_max   a1_UNf_mean  a1_UNf_amax  \
1min                                                                   
2017-09-19 02:00:00         2           0  12561.604167      12565.5   
2017-09-19 02:01:00         2           1  12560.077922      12562.5   
2017-09-19 02:02:00         2           2  12558.450000      12559.5   
2017-09-19 02:03:00         2           3  12556.253623      12560.0   
2017-09-19 02:04:00         2           4  12555.944444      12557.0   
2017-09-19 02:05:00         2           5  12554.859375      12555.5   
2017-09-19 02:06:00         2           6  12552.500000      12553.5   

                      b1_UNf_mean  
1min                               
2017-09-19 02:00:00  12560.482143  
2017-09-19 02:01:00  12559.331169  
2017-09-19 02:02:00  12557.700000  
2017-09-19 02:03:00  12555.434783  
2017-09-19 02:04:00  12555.351852  
2017-09-19 02:05:00  12554.187500  
2017-09-19 02:06:00  12551.800000  

关于python - 将 groupby MultiIndex header 合并为一个单行 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49378333/

相关文章:

python - 使用 python 代码没有在 mapreduce 中获得预期的输出

python - 重命名 Pandas 中各种格式的列标题

Python super() 行为不可靠

Python selenium 获取页面标题

python - PyQt错误: 'PyQt4.QtCore.pyqtSignal' object has no attribute 'connect'

Python pandas.core.indexing.IndexingError : Unalignable boolean Series key provided 错误

python - Pandas 列的高效积

python - 特征缩放(标准化)以及 LabelEncode 和 OneHotEncode 数据的最佳实践是什么

python pandas日期时间转换为日期

python - 使用 iminuit 求解 n 维优化问题