我正在尝试从列中转换字符串值,其中值如下所示:$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
我不明白为什么它不起作用以及为什么我会收到此错误。我在这里做错了什么?
虽然这里的代码不太Pythonic,但一个快速的解决方案是在你提到的操作之前再放一行。它将把你的列从浮点数转换成字符串。
my_df["Value"] = my_df["Value"].apply(str)
欲了解更多信息,请参阅此处。
使用以下代码
my_df["Float Values"] = my_df["Value"].str[1:].str.replace(',', '').astype('float').fillna(0)