【问题标题】:Pandas apply method | String recognised as a float [duplicate]熊猫申请方法 |字符串被识别为浮点数[重复]
【发布时间】:2021-03-09 21:01:50
【问题描述】:

我必须撤回一个数据框的列,其中所有观察值都包含相同类型的值,string,如下所示:

'Total: 1'
'Total: 1'
'Total: 2'
etc.

然后我尝试对包含这些字符串的列evolLevel 运行这样的应用方法:

df['evolLevel'].apply(lambda x: x[-1])

但是它返回了以下错误,尽管这仍然是一个 string 变量:

'float' object is not subscriptable

我也尝试指定axis=1,但它并没有改变任何东西。

【问题讨论】:

  • 我在运行您正在运行的代码时没有收到任何错误。它工作得很好(甚至不需要axis=1)。
  • 试试df['evolLevel'].str[-1]
  • 这很奇怪,但如果 df['evolLevel'] = df['evolLevel'].apply(lambda x: str(x)[-1])
  • @GaëtanLF 试试我的答案。这也应该有效。
  • @MayankPorwal 不,它不会,如果列包含 float 对象,它将以完全相同的方式失败

标签: python pandas


【解决方案1】:

对谁来说可能很有趣,当我这样做时,它终于奏效了:

df['evolLevel'] = df['evolLevel'].apply(lambda x: str(x)[-1])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2020-10-01
    • 2017-10-25
    • 2022-07-20
    相关资源
    最近更新 更多