【问题标题】:How to combine data columns with similar column names Pandas [closed]如何组合具有相似列名的数据列 Pandas [关闭]
【发布时间】:2021-01-02 05:46:54
【问题描述】:

我有一个包含许多相似列名(基本上是拼写错误的单词)的数据,例如:

apple    grapes    apples    bana    apyles    grayes    graph    banana

在这里,我想合并列“apple, apples, apyles”,然后是“grapes, grayes, graph”和“bana,banana”。我该怎么做?

*编辑评论:

问。当你说“结合”时,你是什么意思。可以包含样本输入和输出吗?

回答。

输入

apple    grapes    apples    bana    apyles    grayes    graph    banana
  1         2         3        4        5         6        7         8

输出

apple    grape    banana
  9       15         12 

【问题讨论】:

  • 你试过模糊匹配吗?
  • @Ukrainian-serge 我刚刚尝试过,我基本上希望将任何具有 90% (fuzz.ratio()) 的列合并/求和。但是我怎样才能将它应用到每一列呢?

标签: python pandas fuzzywuzzy


【解决方案1】:

使用fuzzywuzzy,您可以尝试以下操作。请注意,我可以用来让它工作的最佳fuzz.ratio70

import pandas as pd
from fuzzywuzzy import fuzz
l = []
correct = ['apple', 'grapes', 'banana']
cols = df.columns[df.columns.isin(correct)]
for col in cols:
    l.append([c for c in df.columns if fuzz.ratio(col,c) > 70])
df = df.T.reset_index()
for i in range(len(correct)):
    for j in l[i]:
        df['index'] = df['index'].replace(j, correct[i])
df = df.groupby('index').sum().T
df
Out[1]: 
index  apple  banana  grapes
0          9      12      15

【讨论】:

    【解决方案2】:

    您不需要模糊分数的截止值。就用最高的吧。

    import pandas as pd
    from fuzzywuzzy import fuzz
    
    df = pd.DataFrame({'fruit':['apple' ,'grapes',  'apples',  'bana',  'apyles',  'grayes',  'graph', 'banana'],'count':[1,2,3,4,5,6,7,8]})
    
    choices = ['apples','grapes','bananas']
    
    transl ={el2:max([(fuzz.ratio(el1,el2),el1) for el1 in choices])[1] for el2 in df['fruit'] }
    
    df = df.replace({'fruit': transl}).groupby(['fruit'])['count'].sum()
    
    print(df)
    

    输出:

    fruit
    apples      9
    bananas    12
    grapes     15
    Name: count, dtype: int64
    

    【讨论】:

      猜你喜欢
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      相关资源
      最近更新 更多