簡體   English   中英

如何在 pandas python 中創建多個標題?

[英]How to have create more than one header in pandas python?

在我的一生中,我無法弄清楚如何使用多索引或任何其他方式為一列制作多個垂直標題。 這是我的代碼:

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。

否則,如果可能的話,我可以讓現有的標題只是表格的一部分,如果可能的話合並? 前四行和標題為抑郁症並與其他四行相同,只是將其標記為焦慮症?

我非常感謝我能得到的任何幫助,因為我對熊貓很陌生。 謝謝。

您想對列使用 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

你可以這樣做:

df.columns = pd.MultiIndex.from_tuples(zip(['Depression']*4+['Anxiety']*4, df.columns))

這將導致數據框看起來像:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM