gpt4 book ai didi

python - 通过遍历列将数据框对象转换为 float

转载 作者:行者123 更新时间:2023-12-04 14:58:45 24 4
gpt4 key购买 nike

我想通过遍历 Series 来转换 Pandas.Series 中的数据

DataFrame df 看起来像

   c1   c2
0 - 75.0%
1 -5.5% 65.8%
.
n - 6.9%

仅应删除“%”和“-”值。期望的结果:

   c1    c2
0 0.0 75.0
1 -5.5 65.8
.
n 0.0 6.9

如果我打电话

df['c1']= df['c1'].str.replace('%', '')
df['c1']= df['c1'].str.replace('-%', '0')
df['c1']= df['c1'].astype(float)

有效。

但是如果我尝试迭代它不会:

col= [] 
col.append(df['c1'])
col.append(df['c2'])

for i in (col):
i = i.str.replace('%', '',regex=True)
i = i.str.replace('-$', '0',regex=True)

提前致谢

最佳答案

编辑:改进的正则表达式

# Thanks to @tdy
df.replace({'\%':'', r'^\s*-\s*$':0}, regex=True)

解释 - 因为基于字符串的数据通常可以有随机空间。您也可以将其替换为 0,因为随后的 float 转换将处理小数。

输出

    c1      c2
0 0.0 75.0
1 -5.5 65.8
2 0.0 6.9

解释

我们可以在完整的 df 上使用正则表达式来替换所需的符号,我们将 % 替换为空字符串,如果一行末尾包含 -,则替换它与 0.0。

关于python - 通过遍历列将数据框对象转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67361824/

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