gpt4 book ai didi

python - 如何在 Pandas 系列中选择包含多个值的特定行?

转载 作者:行者123 更新时间:2023-11-28 19:28:45 25 4
gpt4 key购买 nike

我创建了一个应用 groupby 函数和 value_counts() 的 pandas series。我想选择具有多个值的行。

Input:
Name Value
A 201
B 219
B 219
C 704
D 222
D 219
ex = ex.groupby("Value")
ex = ex["Name"].value_counts()

Output:
Value Name
201 A 3
219 B 2
D 1
704 C 1
222 D 1

我想选择 value 219 有多个 Name BD .

最佳答案

我认为需要DataFrame.duplicated按两列:

df = df[df.duplicated(['Name','Value'], keep=False)]
print (df)
Name Value
1 B 219
2 B 219

但是如果需要统计值的输出按级别Value过滤:

s = df.groupby("Value")["Name"].value_counts()
print (s)

df1 = s[s.index.get_level_values('Value').duplicated(keep=False)].reset_index(name='count')
print (df1)
Value Name count
0 219 B 2
1 219 D 1

另一种解决方案是通过 reset_index 创建 DataFrame第一:

df2 = df.groupby("Value")["Name"].value_counts().reset_index(name='count')
print (df2)
Value Name count
0 201 A 1
1 219 B 2
2 219 D 1
3 222 D 1
4 704 C 1

df1 = df2[df2['Value'].duplicated(keep=False)]
print (df1)
Value Name count
1 219 B 2
2 219 D 1

关于python - 如何在 Pandas 系列中选择包含多个值的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51059862/

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