gpt4 book ai didi

python - 在 Pandas 中查找类型为 float 或特定类型的所有数据框列?

转载 作者:IT老高 更新时间:2023-10-28 21:50:51 26 4
gpt4 key购买 nike

我有一个数据框 df,它有一些 float64 类型的列,而其他的则是对象。由于混合性质,我不能使用

df.fillna('unknown') #getting error "ValueError: could not convert string to float:"

因为错误发生在类型为 float64 的列上(多么误导的错误消息!)

所以我希望我可以做类似的事情

for col in df.columns[<dtype == object>]:
df[col] = df[col].fillna("unknown")

所以我的问题是是否有任何这样的过滤器表达式可以与 df.columns 一起使用?

我想,或者,不那么优雅,我可以这样做:

 for col in df.columns:
if (df[col].dtype == dtype('O')): # for object type
df[col] = df[col].fillna('')
# still puzzled, only empty string works as replacement, 'unknown' would not work for certain value leading to error of "ValueError: Error parsing datetime string "unknown" at position 0"

我也想知道为什么在上面的代码中用“未知”替换''代码对某些单元格有效,但由于单元格失败,错误为“ValueError:错误解析日期时间字符串“未知”在位置0 "

非常感谢!

最佳答案

这样更简洁:

# select the float columns
df_num = df.select_dtypes(include=[np.float])
# select non-numeric columns
df_num = df.select_dtypes(exclude=[np.number])

关于python - 在 Pandas 中查找类型为 float 或特定类型的所有数据框列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21720022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com