【问题标题】:Pandas: adding column with the length of other column as value熊猫:添加其他列的长度作为值的列
【发布时间】:2022-11-19 08:16:44
【问题描述】:

我想向现有数据框添加一个附加列,该数据框的值是“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。

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

非常感谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

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

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

    结果输出:

      seller_name  name_length
    0        Rick            4
    1      Hannah            6
    

    【讨论】:

      【解决方案2】:

      假设您有以下数据:

      y_1980 = pd.read_csv('y_1980.csv', sep='	')
      
           country  y_1980
      0     afg     196
      1     ago     125
      2     al      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     al      23       2
      

      这样你就可以计算你想要的任何列的长度。

      【讨论】:

      • pandas 内置方法比使用 apply 更健壮。例如,如果字符串列中存在 NaN,此方法将引发 TypeError,但内置的 .str.len 将处理 NaN。
      • 当列是列表时,这对我有帮助
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多