gpt4 book ai didi

python - 在 Pandas 数据框的每一组中保留公共(public)行

转载 作者:行者123 更新时间:2023-12-02 05:47:02 25 4
gpt4 key购买 nike

给定以下 Pandas 数据框:

  | a  b
--+-----
0 | 1 A
1 | 2 A
2 | 3 A
3 | 4 A
4 | 1 B
5 | 2 B
6 | 3 B
7 | 1 C
8 | 3 C
9 | 4 C

如果按列分组 b我想执行一个操作,只保留它们具有列 a 的行共同点。结果将是以下数据框:
  | a  b
--+-----
0 | 1 A
2 | 3 A
4 | 1 B
6 | 3 B
7 | 1 C
8 | 3 C

是否有一些内置方法可以做到这一点?

最佳答案

你可以试试 pivot_table dropna 然后在这里过滤使用 sreries.isin :

s = df.pivot_table(index='a',columns='b',aggfunc=len).dropna().index
df[df['a'].isin(s)]

crosstab 类似:
s = pd.crosstab(df['a'],df['b'])
df[df['a'].isin(s[s.all(axis=1)].index)]
   a  b
0 1 A
2 3 A
4 1 B
6 3 B
7 1 C
8 3 C

关于python - 在 Pandas 数据框的每一组中保留公共(public)行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59799635/

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