【问题标题】:Adding a DataFrame column with len() of another column's values添加具有另一列值的 len() 的 DataFrame 列
【发布时间】:2015-07-04 08:39:19
【问题描述】:

我在尝试获取另一列中字符串值的字符计数列时遇到问题,并且还没有弄清楚如何有效地做到这一点。

for index in range(len(df)):
    df['char_length'][index] = len(df['string'][index]))

这显然涉及首先创建一列空值,然后重写它,这在我的数据集上需要很长时间。那么获得类似的东西的最有效方法是什么

'string'     'char_length'
abcd          4
abcde         5

我查了好久,还是没弄明白。

【问题讨论】:

    标签: python string pandas dataframe string-length


    【解决方案1】:

    Pandas 为此有一个vectorised string methodstr.len()。要创建新列,您可以编写:

    df['char_length'] = df['string'].str.len()
    

    例如:

    >>> df
      string
    0   abcd
    1  abcde
    
    >>> df['char_length'] = df['string'].str.len()
    >>> df
      string  char_length
    0   abcd            4
    1  abcde            5
    

    这应该比使用 Python for 循环遍历 DataFrame 快得多。

    许多其他熟悉的 Python 字符串方法已被引入到 Pandas。例如,lower(用于转换为小写字母),count 用于计算特定子字符串的出现次数,replace 用于将一个子字符串与另一个交换。

    【讨论】:

      【解决方案2】:

      这是一种方法。

      In [3]: df
      Out[3]:
        string
      0   abcd
      1  abcde
      
      In [4]: df['len'] = df['string'].str.len()
      
      In [5]: df
      Out[5]:
        string  len
      0   abcd    4
      1  abcde    5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-06
        • 1970-01-01
        • 1970-01-01
        • 2018-09-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-10
        相关资源
        最近更新 更多