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

标签 python pandas pandas-groupby

我创建了一个应用 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/

相关文章:

python-3.x - 使用groupby后如何从Pandas数据框中选择行?

python - Groupby 多列和聚合与 dask

python - 解析 .txt 文件

python - 在 Python 中,如何根据另一个数字的符号更改列表中一个数字的符号?

Python:如何拆分和重新连接一系列字符串中的第一个和最后一个项目

python - Pandas 应用 Idmax 错误地将混合对象列转换为 float

python - Pandas 数据框中的Groupby

python - 如何让按钮随着窗口大小的调整而移动? (PyQt4)

python - 只从 CSV 阅读器中解压前几列?

python - 合并 Pandas 中的连续行并保留一些行不变