我当前的项目有大量带有空值的列。从技术上讲,我可以只填充它们,也可以将它们一一放下。但是我想,也许我可以编写一个自动为我执行fillna的函数。到目前为止,这就是我的想法
def fill_null(df, column):
if np.dtype(df[column]) == 'O':
df[column].fillna('NA', inplace = True)
elif np.dtype(df[column]) != 'O':
df[column].fillna(0, inplace = True)
return
有用。但是,是否有一种方法可以使其自动遍历整个数据框并自动填充呢?或我要求太多。我仍然是编程的新手,并且不擅长迭代。
谢谢!
使用DataFrame.select_dtypes
的对象列,并创建字典的替换DataFrame.fillna
,然后用全部更换另一列0
:
d = dict.fromkeys(df.select_dtypes(object).columns, 'NA')
df = df.fillna(d).fillna(0)
另一个解决方案:
df = df.apply(lambda x: x.fillna('NA') if x.dtype == 'O' else x.fillna(0))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句