[英]Converting columns of Pandas dataframe from strings to float?
我有一个 dataframe df
ID | 一种 | b | c |
---|---|---|---|
1个 | . | 24,000.8 | 400.9 |
2个 | 5,000.9 | 79,000.8 | . |
4个 | 6,650.7 | . | 345.9 |
如何将这些列 (a,b,c,...) 从字符串转换为浮点数(即将“.”更改为 0 并删除逗号以便从字符串转换为浮点数)?
def string2Float(df,columnName):
if df[columnName] == '.':
df[columnName] = 0
else:
df[columnName] = float(df[columnName].replace(',',''))
return df[columnName]
有没有办法将这个 function 应用到 dataframe? 我只想将它应用于 a、b 和 c 列。将来我想将它应用于 df1、df2、df3 等中的 a、b 和 c 等列。
例如,这适用于 df1 中的 a 列:
def string2Float(dfRow):
if dfRow == '.':
x = 0
else:
x = float(dfRow.replace(',',''))
return x
convertCols = ['a','b','c']
for col in convertCols:
df1[col] = df1.apply(lambda row: string2Float(row[col]),axis=1)
我如何将它应用于多个数据帧?
您可以使用.replace function
value = float(0)
CS11data.replace(".", value, inplace=True) #replaces dots with 0
.replace function 也可以用来去除逗号。 就像是:
df.replace(",", "")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.