【问题标题】:'float' object is not subscriptable error when accesing object访问对象时“浮动”对象不是可下标的错误
【发布时间】:2020-05-19 08:01:35
【问题描述】:

我有 2:1 (2:0,0:1) 格式的足球比赛结果,这是 dtype 对象。我需要创建名为 home_goals 的新列并插入结果的第一个数字。

df['HOME_GOALS'] = df["RESULT"].apply(lambda x: x[0])

此代码返回错误“浮动”对象不可下标。

感谢您的建议

【问题讨论】:

  • 您需要df['HOME_GOALS'] = df["RESULT"].str[0] 吗?
  • 列中有元组?还是字符串?
  • 列中是字符串(dtype = object)。我需要将此字符串的第一个数字填充到新列 df['HOME_GOALS']
  • print (type(df["RESULT"].iat[0])) 是什么?
  • class "str"..感谢您的帮助,df['HOME_GOALS'] = df["RESULT"].str[0] 这对我有用。

标签: pandas lambda apply


【解决方案1】:

如果有字符串,你可以通过索引找到第一个数字:

df['HOME_GOALS'] = df["RESULT"].str[0]

但如果需要第一个可能有多个数字的数字,例如10:5,则需要不同的解决方案:

df['HOME_GOALS'] = df["RESULT"].str.split(':').str[0]

或者:

df['HOME_GOALS'] = df["RESULT"].str.extract('(\d+)')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2013-01-13
    • 2023-03-21
    • 2017-05-02
    • 2012-04-04
    • 2012-01-03
    相关资源
    最近更新 更多