【问题标题】:How to get words matches with it's count using pandas如何使用熊猫获取与其计数匹配的单词
【发布时间】:2020-10-26 05:50:33
【问题描述】:

我有 2 个类似的数据框

set1 = ['a','b','c','d','e','f','g','h','i','j']
set2 = ['a','b','b','c','c','f','h','j','k']

df1 = pd.DataFrame(set1, columns=['name'])
df2 = pd.DataFrame(set2, columns=['name'])

我想在没有 forloop 的情况下比较这 2 个 Dataframes 并获得类似的输出

df3 = ['a=1','b=2','c=2','f=1','h=1','j=1']

我可以使用哪种方式来获取此输出任何示例.?? 这里我只想要df2 中出现在df1 上的项目

只打印像df3这样的项目 而且我还需要计数(在熊猫上不能用没问题我只需要像df3这样的列表也可以 我使用了合并函数,但它显示了内部,外部,左连接,右连接,这些方法,所以不知道哪种方法更好

【问题讨论】:

  • df1df2 是列表,而不是数据帧。
  • 你试图得到什么df3
  • 是的兄弟我刚刚删除了列名,就是这样我会更新它
  • @Sushanth out_1 = df2[~df2['colume_1'].isin(df1['column_1'].unique())] 这个我试过但没用

标签: python pandas list dataframe isin


【解决方案1】:
import groupby from itertools
df1,df2 = "".join(df1),"".join(df2)
for i,j in zip(groupby(df1),groupby(df2)):
print(ilen(list(i)))

【讨论】:

    【解决方案2】:

    希望这会有所帮助!

    import pandas as pd
    df1 = pd.DataFrame({'df1_col':['a','b','c','d','e','f','g','h','i','j']})
    df2 = pd.DataFrame({'df2_col':['a','b','b','c','c','f','h','j','k']})
    
    df2[df2['df2_col'].isin(df1['df1_col'])]['df2_col'].value_counts()
    

    【讨论】:

      【解决方案3】:

      pandas.DataFrame.mergevalue_counts 一起使用:

      df1.merge(df2, on="name")["name"].value_counts()
      

      输出:

      b    2
      c    2
      j    1
      a    1
      h    1
      f    1
      Name: name, dtype: int64
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-23
        • 2020-11-25
        • 1970-01-01
        • 2019-02-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多