Pandas DataFrame中的数据类型没有变化

时间:2018-06-08 17:19:47

标签: python pandas dataframe

我正在尝试将我的DataFrame中的特定列转换为dtype:float。我试过这个:

{
    "overrides": [
        {
            "files": [ "src/**/*.js", "src/**/*.jsx" ]
        }
    ]
}

但是当我打印出来之后:

grid[['DISTINCT_COUNT','MAX_COL_LENGTH', 'MIN_COL_LENGTH', 'NULL_COUNT' ]].apply(pd.to_numeric, errors='ignore')

我仍然看到这个:

print(grid.dtypes)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用apply()不会修改DataFrame。您必须将操作的输出分配回原始DataFrame。

@ coldspeed的回答here解释了这里发生了什么:

  

所有这些切片/索引操作都会创建原始数据框的视图/副本,然后将df重新分配给这些视图/副本,这意味着根本不会触及原始文件。

在您的情况下,您需要:

columns = ['DISTINCT_COUNT','MAX_COL_LENGTH', 'MIN_COL_LENGTH', 'NULL_COUNT']
grid[columns] = grid[columns].apply(pd.to_numeric, errors='ignore')

或者您也可以这样做:

grid[columns] = pd.to_numeric(grid[columns], errors='ignore')