首页 > 解决方案 > 用于转换一列或多列的 Python 函数

问题描述

我的目标是数据框中的指定列被转换为数字,即使它们中有逗号。换句话说:

cols = ["x"]
df = pd.DataFrame({"x": ["1,000", "2,000"], "y": ["430","3,000"]})
df = data.float_convert(df, cols)

生成具有此值的 df:

pd.DataFrame({"x": ["1000", "2000"], "y": ["430","3,000"]})

这是我的功能:

def float_convert(df, cols):
    return (df.loc[:,cols].apply(lambda x: x.str.replace(',', "").astype(float)))

我不明白为什么我的代码没有达到我的预期,也不知道是否有更简单的方法可以做到这一点。

标签: pandas

解决方案


你忘了把它分配回去

def float_convert(df, cols):
       df.loc[:,cols]=df.loc[:,cols].apply(lambda x: x.str.replace(',', "").astype(float))
float_convert(df, cols)
df
      x      y
0  1000    430
1  2000  3,000    

推荐阅读