在Pandas中,找到所有数据框(dataframe)中类型为float的列,或者特定类型的列。

7 浏览
0 Comments

在Pandas中,找到所有数据框(dataframe)中类型为float的列,或者特定类型的列。

我有一个名为df的数据框,其中有一些列的类型为float64,而其他列的类型为object。由于混合类型的存在,我无法使用df.fillna('unknown') #出现错误"ValueError: could not convert string to float:",因为该错误发生在类型为float64的列上(错误信息误导人!),所以我希望能够做以下操作:

for col in df.columns[]:
df[col] = df[col].fillna("unknown")

所以我的问题是是否有任何可以在df.columns中使用的过滤表达式?我猜想作为替代方法,不太优雅,我可以这样做:

for col in df.columns:
if (df[col].dtype == dtype('O')): # 对于object类型
df[col] = df[col].fillna('') 
# 仍然困惑,只有空字符串可以作为替代,'unknown'对于某些值不起作用,导致出现"ValueError: Error parsing datetime string "unknown" at position 0"的错误

我还想知道为什么在上面的代码中将''替换为'unknown'会对某些单元格起作用,但对于出现"ValueError: Error parsing datetime string "unknown" at position 0"错误的单元格则失败了。非常感谢!Yu

0