添加具有另一列值的 len() 的 DataFrame 列
Adding a DataFrame column with len() of another column's values
我在尝试获取另一列中的字符串值的字符计数列时遇到问题,并且还没有想出如何有效地做到这一点。
for index in range(len(df)):
df['char_length'][index] = len(df['string'][index]))
这显然涉及首先创建一个空列,然后重写它,这在我的数据集上花费了很长时间。那么获得类似
的最有效方法是什么?
'string' 'char_length'
abcd 4
abcde 5
我查了很多,还是没弄明白。
Pandas 对此有一个 vectorised string method:str.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
用于将一个子字符串与另一个子字符串交换。
这是一种方法。
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
我在尝试获取另一列中的字符串值的字符计数列时遇到问题,并且还没有想出如何有效地做到这一点。
for index in range(len(df)):
df['char_length'][index] = len(df['string'][index]))
这显然涉及首先创建一个空列,然后重写它,这在我的数据集上花费了很长时间。那么获得类似
的最有效方法是什么?'string' 'char_length'
abcd 4
abcde 5
我查了很多,还是没弄明白。
Pandas 对此有一个 vectorised string method:str.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
用于将一个子字符串与另一个子字符串交换。
这是一种方法。
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