假设我有以下 CSV 数据:
col1,col2,col3,label
,1,2,label1
3,,4,label2
5,6,7,label3
读取此数据并将浮点型的 col1 和 col2 转换为 int 的最佳方法是什么。
我可以使用 this并转换我过滤后的数据框,它只有数字列(col1、col2、col3)。如何修改主数据框本身而忽略字符串标签列?
在相关说明中,我还可以使用以下命令。知道如何在循环中运行它以便动态生成变量名称 col%d,因为我有 32 列。
filter_df.col1 = filter_df.col1.fillna(0).astype(int)
最佳答案
使用select_dtypes
使用 np.number
:
print (filter_df)
col1 col2 col3 label
0 NaN 1.0 2 NaN
1 3.0 NaN 4 label2
2 5.0 6.0 7 label3
cols = filter_df.select_dtypes(np.number).columns
filter_df[cols] = filter_df[cols].fillna(0).astype(int)
print (filter_df)
col1 col2 col3 label
0 0 1 2 NaN
1 3 0 4 label2
2 5 6 7 label3
关于python - Pandas:从多列中删除 NaN 并将它们转换为 int 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221015/