【问题标题】:Count the number of strings with length in pandas计算 pandas 中带长度的字符串的数量
【发布时间】:2022-09-27 16:15:25
【问题描述】:

我正在尝试计算长度为 5 或更多的列中的字符串数。这些字符串位于以逗号分隔的列中。


df = pd.DataFrame(columns=[\'first\'])
df[\'first\'] = [\'jack,utah,TOMHAWK Somer,SORITNO\',\'jill\',\'bob,texas\',\'matt,AR\',\'john\']

我到目前为止使用的代码,但没有创建一个字符串计数超过 5 个字符的新列。

df[\'countStrings\'] = df[\'first\'].str.split(\',\').count(r\'[a-zA-Z0-9]{5,}\')

  • 对于字符串\'abc def\',您期望得到什么结果?

标签: python pandas regex string count


【解决方案1】:

熊猫 str.len()方法用于确定 Pandas 系列中每个字符串的长度。此方法仅适用于字符串系列。 由于这是一个字符串方法,因此每次调用此方法之前都必须添加 .str 前缀。

哟可以试试这个:

import pandas as pd

df = pd.DataFrame(columns=['first'])
df['first'] = ['jack,utah,TOMHAWK 
Somer,SORITNO','jill','bob,texas','matt,AR','john']

df['first'].replace(',',' ', regex=True, inplace=True)
df['first'].str.count(r'\w+').sum()

【讨论】:

    【解决方案2】:

    这就是我尝试获取字符串数量的方式长度>=5在列中:

    data=[i for k in df['first']
            for i in k.split(',')
            if len(i)>=5]
    result=len(data)
    

    【讨论】:

      【解决方案3】:

      如果字符串中有逗号,则不必在逗号上拆分以匹配 5 次或更多次 [a-zA-Z0-9]{5,}

      import pandas as pd
      
      df = pd.DataFrame(columns=['first'])
      df['first'] = ['jack,utah,TOMHAWK Somer,SORITNO', 'jill', 'bob,texas', 'matt,AR', 'john']
      df['countStrings'] = df['first'].str.count(r'[a-zA-Z0-9]{5,}')
      print(df)
      

      输出

                                   first  countStrings
      0  jack,utah,TOMHAWK Somer,SORITNO             3
      1                             jill             0
      2                        bob,texas             1
      3                          matt,AR             0
      4                             john             0
      

      【讨论】:

        猜你喜欢
        • 2017-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-05
        相关资源
        最近更新 更多