我建立一个线性回归模型来检验这个dataset的变量之间的关系。它包含一些' XXXXXXX'因此,我首先用NaN替换它们:
df = df.replace(['XXXXXXX'], ['NaN'])
然后我检查了每列中的值的数量:
df.count(axis=0)
似乎值的数量因列而异:
season 200
river size 200
fluid velocity 200
chemical_1 199
chemical_2 198
chemical_3 190
chemical_4 198
chemical_5 198
chemical_6 198
chemical_7 198
chemical_8 188
algae_1 183
algae_2 183
algae_3 183
algae_4 183
algae_5 200
algae_6 200
algae_7 183
如果我使用像df = df.fillna(df.median(axis=0), axis=0)
这样的中间值填充NaN,每列会得到200个值,并且我能够执行进一步的分析。
但是我想使用另一种方法并删除NaN,以便每列具有相同数量的值。
当我尝试df.dropna()
时,每列中的值计数会保持不同。而且我无法进行回归分析。
为了放弃NaN并保持每列中的值的数量相等,应该采用什么方法?
答案 0 :(得分:1)
而不是['NaN']
,请使用numpy.nan
import numpy as np
df = df.replace(['XXXXXXX'], np.nan)
然后df.dropna()
应该可以正常工作。