Python Pandas:如何在数据帧的每行中选择两个相等的列

Posted

技术标签:

【中文标题】Python Pandas:如何在数据帧的每行中选择两个相等的列【英文标题】:Python Pandas : How to select two equal column per row of a dataframe 【发布时间】:2015-06-29 21:16:34 【问题描述】:

这是我的数据框“dfm”:

match   org_o                         group 
012       012 Smile Communications     92   
012       012 Smile                    92   
10types   10TYPES                      93   
10types   10types.com                  93   
360works  360WORKS                     94   
360works  360works.com                 94   
400 IBM   AS/400 Division              36   
6c f3f    IBM Internal US Division     36   

我想选择具有相同“组”编号以及相同“匹配”的行。所以结果应该是这样的:

   match    org_o                         group 
    012       012 Smile Communications     92   
    012       012 Smile                    92   
    10types   10TYPES                      93   
    10types   10types.com                  93   
    360works  360WORKS                     94   
    360works  360works.com                 94

有人知道我如何在 python pandas 中做到这一点吗?

【问题讨论】:

【参考方案1】:

在“组”和“匹配”上执行groupby,然后在“org_o”的计数上执行filter > 1:

In [245]:

df.groupby(['group', 'match']).filter(lambda x: x['org_o'].count() > 1)
Out[245]:
      match                     org_o  group
0       012  012 Smile Communications     92
1       012                 012 Smile     92
2   10types                   10TYPES     93
3   10types               10types.com     93
4  360works                  360WORKS     94
5  360works              360works.com     94

【讨论】:

以上是关于Python Pandas:如何在数据帧的每行中选择两个相等的列的主要内容,如果未能解决你的问题,请参考以下文章

python 减少Pandas数据帧的内存使用量。

Python_Executing 来自 Pandas 数据帧的所有值的特定行

python pandas:仅将数据帧的结构(无行)导出到 SQL

Python Pandas从现有数据帧的所有行组合创建新的数据帧

Pandas 获取具有复合索引的数据帧的行号

如何有效地迭代 Pandas 数据帧的连续块