![](/img/trans.png)
[英]How to subset a dataframe by the number of nans in each row to the right of a select column in python?
[英]How to drop NaNs and get the same number of values in each column in Python?
我正在建立一个线性回归模型,以检查该数据集中变量之间的关系。 它包含一些“ 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 df = df.fillna(df.median(axis=0), axis=0)
每列将获得200个值,并且我可以进行进一步的分析。
但是,我想使用另一种方法并删除NaN,以便每列具有相同数量的值。 当我尝试df.dropna()
,每列中的值计数保持不同。 而且我无法进行回归分析。
为了删除NaN并使每列中的值数量相等,正确的方法是什么?
代替['NaN']
,使用numpy.nan
import numpy as np
df = df.replace(['XXXXXXX'], np.nan)
然后df.dropna()
应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.