Pandas DataFrame中的带逗号数值字符串转为浮点数
在本文中,我们将介绍在Pandas DataFrame中,将带有逗号的数值字符串转化为浮点数的方法。
在处理数据中,经常需要将数值转换为浮点数类型。但在实际工作中,我们可能会遇到如下这种情况:在Excel中复制数据后,数据中的数值字符串被自动加上了逗号,例如:”1,234.56″。如果直接转为浮点数,会报错,因为逗号是不被识别的。因此,需要先将逗号去掉,然后再进行转换。
我们先创建一个包含逗号的DataFrame:
import pandas as pd
df = pd.DataFrame({'A':['1,234.56', '12,345.6', '123,456']})
df
输出:
A
0 1,234.56
1 12,345.6
2 123,456
现在,我们需要将列A中的逗号去掉,然后再将其转化为浮点数类型。
阅读更多:Pandas 教程
方法一:使用str.replace()和astype()
这是最常用的方法,使用str.replace()
函数将逗号替换为空字符串,然后使用astype()
将该列转化为浮点数类型。
df['A'] = df['A'].str.replace(',', '').astype(float)
df
输出:
A
0 1234.56
1 12345.60
2 123456.00
方法二:使用map()和lambda表达式
也可使用map()
对每个元素应用一个lambda表达式。这个表达式将每个元素从字符串转换为浮点数类型,并删除逗号。
df['A'] = df['A'].map(lambda x: float(x.replace(',', '')))
df
输出:
A
0 1234.56
1 12345.60
2 123456.00
注意:如果该列中包含无效字符串,例如空字符串、非数值字符串,以上两种方法将会抛出异常。因此,如果有需要,可以添加一些数据清洗的代码,以确保数据的准确性。
总结
在本文中,我们介绍了两种将Pandas DataFrame中带有逗号的数值字符串转换为浮点数的方法。希望这些方法能够帮助你更高效地处理数据。