TypeError:“float”对象不可下标 - 使用 Pandas 数据框

问题描述 投票:0回答:2

我正在尝试从列中转换字符串值,其中值如下所示:$200、$6,000 等。我想将这些值转换为浮点数并将它们保存到数据框中的新列中,以便我可以计算聚合统计信息,例如 .例如,mean()。

my_df["Float Values"] = my_df["Value"].apply(lambda x: float(x[1:].replace(',','')) if x != "None" else 0)

但不幸的是我收到了这个错误:

TypeError: 'float' object is not subscriptable

我不明白为什么它不起作用以及为什么我会收到此错误。我在这里做错了什么?

python pandas dataframe lambda
2个回答
0
投票

虽然这里的代码不太Pythonic,但一个快速的解决方案是在你提到的操作之前再放一行。它将把你的列从浮点数转换成字符串。

my_df["Value"] = my_df["Value"].apply(str)

欲了解更多信息,请参阅此处


0
投票

使用以下代码

my_df["Float Values"] = my_df["Value"].str[1:].str.replace(',', '').astype('float').fillna(0)
© www.soinside.com 2019 - 2024. All rights reserved.