如何在按透视表分组时向列添加条件

2024-06-12 14:55:26 发布

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

为了创建下表,我使用了pandas包中的group by和pivot表:

输入:

q4 = q1[['category','Month']].groupby(['category','Month']).Month.agg({'Count':'count'}).reset_index()
q4 = pd.DataFrame(q4.pivot(index='category',columns='Month').reset_index())

然后输出:

category                            Count
Month                       6       7       8
0   adult-classes           29.0    109.0   162.0
1   air-pollution           27.0    43.0    13.0
2   babies-and-toddlers     4.0     51.0    2.0
3   bicycle                 210.0   96.0    23.0
4   building                NaN     17.0    NaN
5   buildings-maintenance   23.0    12.0    NaN
6   catering                1351.0  4881.0  1040.0
7   childcare               9.0     NaN     NaN
8   city-planning           105.0   81.0    23.0
9   city-services           2461.0  2130.0  1204.0
10  city-taxes              1.0     4.0     42.0

我想给这几个月增加一个条件, 我遇到的问题是,在旋转轴之后,我无法访问列

如何仅显示6<;7<;8所在的行?你知道吗


Tags: ltcitypandasindexbycountgroupnan
1条回答
网友
1楼 · 发布于 2024-06-12 14:55:26

要展平多重索引,可以使用列的重命名(签出this answer)。你知道吗

q4.columns = [''.join([str(c) for c in col]).strip() for col in q4.columns.values]

要删除NaN,请执行以下操作:

q4.fillna(0, inplace=True)

要根据您的约束选择:

result = q4[(q4['Count6'] < q['Count7']) & (q4['Count7'] < q4['Count8'])]

相关问题 更多 >