繁体   English   中英

将 Pandas dataframe 的列从字符串转换为浮点数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM