我正在尝试将我的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)
有什么想法吗?
答案 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')