pandas 添加一个DataFrame列,其中包含另一列值的len()

ruoxqz4g  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(92)

我在尝试获取另一列字符串值的字符计数列时遇到了问题,并且还没有想出如何高效地执行。

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

字符串
这显然涉及到首先创建一列空值,然后重写它,这在我的数据集上花费了很长时间。那么什么是最有效的方法来获得像

'string'     'char_length'
abcd          4
abcde         5


我查了很多遍,但我还没弄明白。

wydwbb8l

wydwbb8l1#

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用于交换一个子串。

jqjz2hbq

jqjz2hbq2#

这里有一个办法。

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

字符串

相关问题