python - 在多标题数据框中选择一列

标签 python pandas

我有一个带有多个标题的 df :

multicol = pd.MultiIndex.from_tuples([('France', '2017'), ('France', '2018'),('UK', '2017'), ('UK', '2018')], names = ("Country", "Year"))
df = pd.DataFrame([[1, 2, 5, 8], [2, 4, 2, 9]], index=['Number', 'Volume'], columns=multicol)

我只想打印 2018 年的法国列。

我该怎么做?

最佳答案

使用元组选择 MultiIndex 中的列:

df = df[('France','2018')]
print (df)
Number    2
Volume    4
Name: (France, 2018), dtype: int64

对于更复杂的选择,请使用 slicers :

idx = pd.IndexSlice
a = df.loc['Number', idx['France','2018']]
print (a)
2

b = df.loc['Number', idx[:,'2018']]
print (b)
Country  Year
France   2018    2
UK       2018    8
Name: Number, dtype: int64

c = df.loc[:, idx[:,'2017']]
print (c)
Country France   UK
Year      2017 2017
Number       1    5
Volume       2    2

关于python - 在多标题数据框中选择一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50490494/

相关文章:

Python EAN-13 条码生成器脚本溢出

python - 使用不同列类型创建 DataFrame 的有效方法

python - 将字典转换为可以转换的 float

python-3.x - 将包含字符串和缺失的列转换为DateTime

python - read_csv 导入困难

python - EC2 Amazon Beanstalk 上的 django-admin.py 和 python 路径

Python - 如何将此时间戳格式转换为日期时间?

python - PyMEL 中矩阵和四元数以及 EulerRotation 之间转换的最简单方法

python - 如何将数据框加入自身,创建组内的所有组合

python pandas loc - 过滤值列表