首页 > 解决方案 > 如何使用熊猫数据框在下一行将列名细分为两个新列

问题描述

我已阅读 excel 输入文件以转换为 pandas 数据帧格式,如下所示。它有三列 [OFFICE NO, DAY HOURS, DAY RATES ] 有两行值 [(101, 8 , 60) , [102, 8, 60)] 输入:

OFFICE NO  DAY HOURS    DAY RATES
101        8            60
102        8            60

我在文本文件中的最终输出只需要第一行 [OFFICE NO, DAY JOB] 上的两列。第二行需要“DAY JOB”主列名称下方的两个分开的 [HOURS , RATES] 列。输出:

OFFICE NO  DAY JOB
          HOURS RATES 
101       8     60
102       8     60

您能否指导我如何在两行不同的行中定义 pandas 中的列以实现上述输出?

标签: pythonpandasdataframe

解决方案


看起来像pandas.MultiIndex可能是您正在寻找的。

df = pd.DataFrame({'OFFICE NO': [101, 102],
    'DAY HOURS': [8, 8],
    'DAY RATES': [60, 60]})
columns = pd.MultiIndex.from_tuples([('DAY JOB', 'HOURS'), ('DAY JOB', 'RATES')])
df2 = pd.DataFrame(df[['DAY HOURS', 'DAY RATES']].values, columns=columns, index=df['OFFICE NO'])
print(df2)

输出:

          DAY JOB      
            HOURS RATES
OFFICE NO              
101             8    60
102             8    60

推荐阅读