【发布时间】:2020-11-15 16:11:45
【问题描述】:
我正在处理Titanic Challenge 并尝试根据该标题的年龄中位数来估算年龄列。例如,职称 Master 的中位年龄为 3.5。对于标题等于 Master 并且缺少年龄的所有行,我们将估算为 3.5。以下是我的代码:
import pandas as pd
df = pd.read_csv('train.csv', index_col=0)
df_1 = df.copy()
df_1.Age[df_1.Name.str.contains('master', case= False)].fillna(df.Age[df.Name.str.contains('master', case=False)].median(), inplace = True)
上面的代码会打印标题主人的年龄,包括那些估算的。但是,当整体打印 df_1 时,缺失值会再次出现。含义:插补不影响内存中的df_1。
【问题讨论】:
-
经过反复试验后,我以这种方式对其进行了修复:df_3.Age[df_3.Name.str.contains('master', case= False)] = df_3.Age[df_3.Name. str.contains('master', case= False)].fillna(df_2.Age[df_2.Name.str.contains('master', case=False)].median(), inplace = False) 以下错误是返回:试图在 DataFrame 中的切片副本上设置一个值。这会造成问题吗?