在我的一生中,我不知道如何使用multiindex或任何其他方法为一列创建多个垂直标题。这是我的代码:
import pandas as pd
genderad = [['Prescribed Taking', 1458, 4404, 14, 'Prescribed Taking', 1558, 4270, 26], ['Prescribed Not Taking', 226, 781, 1, 'Prescribed Not Taking', 171, 523, 2], ['Not Prescribed', 2302, 6672, 35, 'Not Prescribed', 1899, 4330, 26]]
df = pd.DataFrame(genderad)
df = pd.DataFrame(genderad, columns = ['Medication Status', 'Male', 'Female', 'Z', 'Medication Status', 'Male', 'Female', 'Z'])
df下面的代码将我引向以下表:https://i.stack.imgur.com/NRT0I.png
我想弄清楚的是,我怎样才能在药物状态的第一部分,男性,女性,和Z上添加另一个标题,标题是“抑郁”,而在第二部分,“焦虑”,男性,女性,和Z。
否则,如果可能的话,我可以将现有的标头仅仅作为表的一部分,如果可能的话,合并呢?前四行和标题,抑郁症和做其他四行,除了标记为焦虑?
我真的很感激我能得到的任何帮助,因为我对熊猫很陌生。谢谢。
发布于 2022-05-26 14:03:31
您希望对列使用MultiIndex:
columns = pd.MultiIndex.from_product((['Depression', 'Anxiety'],
['Medication Status', 'Male', 'Female', 'Z']))
df = pd.DataFrame(genderad, columns=columns)它给出了print(df.to_string())
Depression Anxiety
Medication Status Male Female Z Medication Status Male Female Z
0 Prescribed Taking 1458 4404 14 Prescribed Taking 1558 4270 26
1 Prescribed Not Taking 226 781 1 Prescribed Not Taking 171 523 2
2 Not Prescribed 2302 6672 35 Not Prescribed 1899 4330 26发布于 2022-05-26 14:03:54
你可以这样做:
df.columns = pd.MultiIndex.from_tuples(zip(['Depression']*4+['Anxiety']*4, df.columns))这将导致数据格式如下所示:

https://stackoverflow.com/questions/72392921
复制相似问题