Python 使用值的DataFrame填充NA
根据文档,Python 使用值的DataFrame填充NA,python,pandas,fillna,Python,Pandas,Fillna,根据文档,fillnavalue参数可以是以下参数之一: value : scalar, dict, Series, or DataFrame Value to use to fill holes (e.g. 0), alternately a dict/Series/DataFrame of values specifying which value to use for each index (for a Series) or column (for a DataFrame). (value
fillna
value
参数可以是以下参数之一:
value : scalar, dict, Series, or DataFrame
Value to use to fill holes (e.g. 0), alternately a dict/Series/DataFrame of values specifying which value to use for each index (for a Series) or column (for a DataFrame). (values not in the dict/Series/DataFrame will not be filled). This value cannot be a list.
我有一个数据框,看起来像:
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 892 3 Kelly, Mr. James male 34.5 0 0 330911 7.8292 NaN Q
1 893 3 Wilkes, Mrs. James (Ellen Needs) female 47.0 1 0 363272 7.0000 NaN S
2 894 2 Myles, Mr. Thomas Francis male 62.0 0 0 240276 9.6875 NaN Q
3 895 3 Wirz, Mr. Albert male 27.0 0 0 315154 8.6625 NaN S
4 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female 22.0 1 1 3101298 12.2875 NaN S
这就是我想做的:
Pclass Cabin Embarked Ticket
0 1 C S 50
1 2 F S 13
2 3 G S 5
它说的是,对于Pclass==1
来说,最常见的cab
是C
。鉴于此,在我的原始数据帧df
中,我想用C
填充每个df['cab']==null
这是一个小示例,我可以手动将每个可能的空组合处理为:
df_both[df_both['Pclass'] == 1 & df_both['Cabin'] == np.NaN] = 'C'
但是,我想知道是否可以使用这个派生的数据帧来自动完成所有这些填充
谢谢。如果您想用中位数或特定列的平均值之类的内容填充所有的Nan,您可以执行以下操作 中位数:
df.fillna(df.median())
卑鄙
df.fillna(df.mean())
有关更多信息,请参阅
编辑:
或者,您可以使用具有指定值的词典。键需要映射到列名。通过这种方式,还可以对字符串中缺少的值进行插补
df.fillna({'col1':'a','col2': 1})
如果您想用特定列的中位数或平均值之类的内容填充所有Nan,您可以执行以下操作 中位数:
df.fillna(df.median())
卑鄙
df.fillna(df.mean())
有关更多信息,请参阅
编辑:
或者,您可以使用具有指定值的词典。键需要映射到列名。通过这种方式,还可以对字符串中缺少的值进行插补
df.fillna({'col1':'a','col2': 1})