如何在标题中的1个单元格中加入2个单元格?

2024-04-27 00:56:06 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

上面是我的数据帧,我希望把这个放在头上

enter image description here

有人知道吗?你知道吗


Tags: 数据
1条回答
网友
1楼 · 发布于 2024-04-27 00:56:06

您可以使用:

a = ['201701', '', '201705', '', '201707']
b = ['PHI', 'Actual', 'Actual', 'PHI', 'Actual']
data = [[np.nan, np.nan, np.nan, 8, np.nan]]
df = pd.DataFrame(data, index=['ClassCold'], columns = pd.MultiIndex.from_arrays([a,b]))
print (df.columns)
MultiIndex(levels=[['', '201701', '201705', '201707'], ['Actual', 'PHI']],
           labels=[[1, 0, 2, 0, 3], [1, 0, 0, 1, 0]])

print (df)
          201701        201705     201707
             PHI Actual Actual PHI Actual
ClassCold    NaN    NaN    NaN   8    NaN

通过^{}获取MultiIndex的第一级,通过^{}转换为Series,通过^{}向前填充NaN的空字符串(或空格)。你知道吗

上次新建MultiIndex^{}

a = df.columns.get_level_values(0).to_series().replace('',np.nan).ffill()
df.columns = df.columns = pd.MultiIndex.from_arrays([a, df.columns.get_level_values(1)])
print (df)
          201701        201705     201707
             PHI Actual Actual PHI Actual
ClassCold    NaN    NaN    NaN   8    NaN

print (df.columns)
MultiIndex(levels=[['201701', '201705', '201707'], ['Actual', 'PHI']],
           labels=[[0, 0, 1, 1, 2], [1, 0, 0, 1, 0]])

相关问题 更多 >