Skip to main content
 首页 » 编程设计

python之Pandas:从多列中删除 NaN 并将它们转换为 int 的最佳方法

2025年05月04日13langtianya

假设我有以下 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