gpt4 book ai didi

python - Pandas 切片多索引数据框

转载 作者:太空狗 更新时间:2023-10-29 21:36:29 26 4
gpt4 key购买 nike

我想对多索引 pandas 数据帧进行切片

这里是获取我的测试数据的代码:

import pandas as pd

testdf = {
'Name': {
0: 'H', 1: 'H', 2: 'H', 3: 'H', 4: 'H'}, 'Division': {
0: 'C', 1: 'C', 2: 'C', 3: 'C', 4: 'C'}, 'EmployeeId': {
0: 14, 1: 14, 2: 14, 3: 14, 4: 14}, 'Amt1': {
0: 124.39, 1: 186.78, 2: 127.94, 3: 258.35000000000002, 4: 284.77999999999997}, 'Amt2': {
0: 30.0, 1: 30.0, 2: 30.0, 3: 30.0, 4: 60.0}, 'Employer': {
0: 'Z', 1: 'Z', 2: 'Z', 3: 'Z', 4: 'Z'}, 'PersonId': {
0: 14, 1: 14, 2: 14, 3: 14, 4: 15}, 'Provider': {
0: 'A', 1: 'A', 2: 'A', 3: 'A', 4: 'B'}, 'Year': {
0: 2012, 1: 2012, 2: 2013, 3: 2013, 4: 2012}}
testdf = pd.DataFrame(testdf)
testdf
grouper_keys = [
'Employer',
'Year',
'Division',
'Name',
'EmployeeId',
'PersonId']

testdf2 = pd.pivot_table(data=testdf,
values='Amt1',
index=grouper_keys,
columns='Provider',
fill_value=None,
margins=False,
dropna=True,
aggfunc=('sum', 'count'),
)

print(testdf2)

给出:

enter image description here

现在我只能使用 AB 得到 sum

testdf2.loc[:, slice(None, ('sum', 'A'))]

给出

enter image description here

我怎样才能得到 both sum and count 只有 A 或者B

最佳答案

横截面使用xs

testdf2.xs('A', axis=1, level=1)

enter image description here

或者使用 drop_level=False 保持列级别

testdf2.xs('A', axis=1, level=1, drop_level=False)

enter image description here

关于python - Pandas 切片多索引数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com