【问题标题】:Finding common words in a column based on values from another column根据另一列中的值查找列中的常用词
【发布时间】:2021-12-30 17:01:27
【问题描述】:

在具有名为source 的列的数据框中,由两个不同的单词列表组成

 source  words  letter_count
1 list1  apple       5
2 list1  pear        4
3 list1  banana      6
4 list2  ford        4
5 list2  chevy       5
6 list2  apple       5
7 list2  banana      6

我正在尝试返回一个显示 list1 和 list2 中重复单词的新数据框

   words   letter_count
1  apple        5
2  banana       6

我正在使用 python 和 pandas

【问题讨论】:

    标签: python pandas string list dataframe


    【解决方案1】:

    我认为您正在寻找pandas.Series.duplicated()。它返回一个掩码(包含对应于匹配条件的值的真/假值的系列),其中在系列中多次出现的值为真,仅出现的值为假。然后,您可以使用该掩码索引数据框:

    new_df = df[df['words'].duplicated()].drop('source', axis=1)
    

    输出:

    >>> new_df
        words  letter_count
    6  banana             6
    7   apple             5
    

    【讨论】:

      【解决方案2】:

      这是一种查找源列的两个列表中是否存在相同单词的方法。

      df.loc[df['words'].isin(set.intersection(*df.groupby('source')['words'].agg(set))),['words','letter_count']].drop_duplicates('words',keep='last')
      
      Output:
      
              words letter_count
          6   apple            5
          7  banana            6
      

      【讨论】:

        猜你喜欢
        • 2018-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-11
        • 2020-08-09
        • 2021-07-25
        • 1970-01-01
        • 2022-06-23
        相关资源
        最近更新 更多