>> df['Val'].drop_duplicates().sort_values() -6ren">
gpt4 book ai didi

python - 如果 pandas 末尾有 "-"符号,则将值转换为负 float

转载 作者:行者123 更新时间:2023-12-01 21:57:45 24 4
gpt4 key购买 nike

在数据框中,我有一个名为“Val”的列,其中我有浮点值,但负值在末尾由“-”符号表示!因此它被解释为对象即

>>> df['Val'].drop_duplicates().sort_values()
5 0.00000
1873 0.20000-
496 100.00000
425 2.00000
Name: Val, Length: 4, dtype: object

如何将负值转换为真负值,然后将列转换为 float 。

如果它是一个列表,我会做这样的事情:

if row[i][-1:] == '-':
row[i] = float(row[i][:-1]) * -1
else:
row[i] = float(row[i])

pandas 的方法是什么?

最佳答案

您可以使用 loc 仅更正以 - 结尾的条目

mask = df.Val.str.endswith('-')
df.loc[mask, 'Val'] = '-' + df.loc[mask, 'Val'].str[:-1]

然后转换为数字dtype

df['Val'] = pd.to_numeric(df.Val, errors='coerce')

最终结果

5         0.0
1873 -0.2
496 100.0
425 2.0
Name: Val, dtype: float64

关于python - 如果 pandas 末尾有 "-"符号,则将值转换为负 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55551982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com