Pandas:添加其他列长度的列作为值

Jas*_*per 8 python pandas

我想在现有数据框中添加一个附加列,该数据框的长度为'seller_name'列作为其值.

输出应该是这样的:

seller_name    name_length
-------------|-------------
Rick         |      4
Hannah       |      6
Run Code Online (Sandbox Code Playgroud)

但是,我很难获得正确的代码.

df['name_length']  = len(df['seller_name'])
Run Code Online (Sandbox Code Playgroud)

只给我整列的长度(6845)和

df['nl']  = df[len('seller_name')]
Run Code Online (Sandbox Code Playgroud)

引发KeyError.

有谁知道实现我的目标的正确命令?

非常感谢!

roo*_*oot 14

使用.str字符串访问器在DataFrame上执行字符串操作.特别是,你想要.str.len:

df['name_length']  = df['seller_name'].str.len()
Run Code Online (Sandbox Code Playgroud)

结果输出:

  seller_name  name_length
0        Rick            4
1      Hannah            6
Run Code Online (Sandbox Code Playgroud)


eve*_*007 7

假设您有以下数据:

y_1980 = pd.read_csv('y_1980.csv', sep='\t')

     country  y_1980
0     afg     196
1     ago     125
2     alb      23
Run Code Online (Sandbox Code Playgroud)

如果要计算任何列的长度,可以使用:

y_1980['length'] = y_1980['country'].apply(lambda x: len(x))
print(y_1980)

     country  y_1980  length
 0     afg     196       3
 1     ago     125       3
 2     alb      23       3
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以计算所需的任何列的长度。

  • pandas 的内置方法比使用 `apply` 更健壮。例如,如果字符串列中存在 NaN,则此方法将引发 TypeError,但内置的 `.str.len` 将处理 NaN。 (3认同)
  • 当专栏是一个列表时,这对我有帮助 (3认同)