【问题标题】:find most common strings in al columns在所有列中查找最常见的字符串
【发布时间】:2020-03-20 11:26:42
【问题描述】:
     Values          
0   99;3;;Sicherheitstür (0SS4.2) bei Anfang Boxen...
1   100;3;;Sicherheitstür (0SS4.2) bei Anfang Boxe...
3   145;3;;Sicherheitstür (0SS3b.5) bei Einspeisef...
4   95;3;;Sicherheitstür (0SS3b.5) vor Boxen unten...
5   96;3;;Sicherheitstür (0SS3b.5) vor Boxen unten...
6   30;3;;Anlage ausgeschaltet (Schlüsselschalter ...
7   37;3;;Sicherheitsbereich 5 (Paketierung) ausge...
12  1400;2;;Entladeförderer (Pos. 730) -Handbetrie...
13  1404;2;;Stauförderer 2 (Pos. 1130) -Handbetrie...
14  1401;2;;Bretterzerteiler (Pos. 1060) -Handbetr...
15  1431;2;;Stauförderer 2 (Pos. 1130) -Handbetrie...
17  1402;2;;Ausrichtrollgang (Pos. 1110) -Handbetr...
18  1403;2;;Stauförderer 1 (Pos. 1120) -Handbetrie...
19  1406;2;;Lagenklemmung (Pos. 1140) -Handbetrieb...
20  1402;2;;Ausrichtrollgang (Pos. 1110) -Handbetr..


df 每列有很多不同的值 我想在每列最常用的字符串之后对 df 进行分组,并将字符串及其频率存储到字典中


{Sicherheitstür: 5, Ausrichtrollgang: 2, ....

到目前为止,我只能以简单的形式对 df 进行分组

df_new = df.groupby(['a']).groups

【问题讨论】:

    标签: python-3.x pandas dataframe


    【解决方案1】:
    new_data = df["a"].value_counts().to_dict()
    

    【讨论】:

    • 我怎样才能只选择大多数公共字符串?
    • 新字典 new_data 按值计数排序,最常见的字符串从顶部开始排列。如果要选择前 10 个字符串,可以使用 new_data = df["a"].value_counts()[0:10].to_dict()
    【解决方案2】:

    您可以使用以下方法构建字典:

    mydict = df["a"].value_counts().to_dict()
    

    这将为您提供单词和单词数,然后您可以使用以下命令对其进行排序:

    for key in sorted(mydict):
        print "%s: %s" % (key, mydict[key])
    

    或者:

    from collections import OrderedDict
    ordereddict = OrderedDict(sorted(mydict.items(), key=lambda t: t[0]))
    

    更多排序方式可以看here

    有疑问可以看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-23
      • 2014-05-24
      • 2017-03-30
      • 2019-04-25
      • 2022-01-25
      • 1970-01-01
      • 2012-12-08
      • 2014-12-14
      相关资源
      最近更新 更多