如何在下一行使用pandas数据框架将列名细分为两个新列



我已经阅读了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中的列以实现上述输出吗?

看起来像熊猫。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

最新更新