【问题标题】:How to calculate number of strings in a DataFrame如何计算 DataFrame 中的字符串数
【发布时间】:2020-09-12 08:51:50
【问题描述】:

我正在尝试计算我的数据框列中的字符串数。

>>> import pandas as pd                                                              

>>> df = pd.DataFrame({'A':['a','b','c',1,2,3],
                       'B':['pp','qq','rr',3,4,5]})
>>> df
   A   B
0  a  pp
1  b  qq
2  c  rr
3  1   3
4  2   4
5  3   5

>>> df['A'].str.count('/w')                                                          
0    0.0
1    0.0
2    0.0
3    NaN
4    NaN
5    NaN
Name: A, dtype: float64

我应该怎么做而不是df['A'].str.count('/w')

【问题讨论】:

  • 那么,这个数据帧的预期计数是多少?
  • df.A.str.count('[a-zA-Z]+').sum()?
  • df.A.contains('\w+').sum()?
  • df.apply(lambda x:x.str.contains('\w+').sum()) 表示每列上的整个数据框。字符串总数为df.apply(lambda x:x.str.contains('\w+').sum()).sum()-->6

标签: python string pandas dataframe count


【解决方案1】:

试试这个

df['B'].str.count(r'\w+').sum()

输出

3.0

【讨论】:

    【解决方案2】:

    对于您的问题:

    列表压缩应该可以解决您的问题。

    x = len([x for x in list(df["A"]) if type(x) == str]) 
    

    输出:3

    统计特定实例:

    我认为df.column_name.value_counts()[char]其中df 是数据框的名称column_name 是正在考虑的列的名称,char 是您要查找的字符或数字或字符串。

    执行df.A.value_counts()["a"] 计算df 数据帧的A 列中a 字符的数量。

    对于数字,您可以通过 df.A.value_counts()[1] 计算 dfA 列中 1 的数量。

    【讨论】:

      【解决方案3】:

      如果您想计算数据框所有单元格中的字符串数,而不考虑列,请尝试以下操作:

      # convert all the cells of the df into a single list
      ls = df.values.tolist()
      ls = [item for sublist in ls for item in sublist]
      
      count = 0
      
      for val in ls:
          if isinstance(val, str):
              count += 1
      
      print(count)
      

      输出:

      6
      

      【讨论】:

        猜你喜欢
        • 2016-09-25
        • 2021-10-17
        • 1970-01-01
        • 2021-10-25
        • 1970-01-01
        • 1970-01-01
        • 2020-03-12
        • 2022-12-21
        • 2012-06-26
        相关资源
        最近更新 更多