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

时间:2017-03-15 16:40:02

标签: python pandas

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

输出应如下:

seller_name    name_length
-------------|-------------
Rick         |      4
Hannah       |      6

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

df['name_length']  = len(df['seller_name'])

只给我整列的长度(6845) 并且

df['nl']  = df[len('seller_name')]

引发KeyError。

有没有人知道实现目标的正确命令?

非常感谢!

2 个答案:

答案 0 :(得分:10)

使用.str字符串访问器在DataFrame上执行字符串操作。特别是,您需要.str.len

df['name_length']  = df['seller_name'].str.len()

结果输出:

  seller_name  name_length
0        Rick            4
1      Hannah            6

答案 1 :(得分:2)

说你有这个数据:

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

     country  y_1980
0     afg     196
1     ago     125
2     alb      23

如果您想计算可以使用的任何列的长度:

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

这样您就可以计算出所需列数的长度。