如何将值数组输入到值为 null 的数据框的列中,并创建一个新的布尔列来标记它?
How do I input an array of values into a column of a dataframe where the value is null and make a new boolean column that marks this?
假设我有一个数据框如下:
Patient_ID Age Weight
1 27 145
2 NaN 216
3 NaN 107
4 51 156
5 NaN 201
我也有这个数组:
array([26,64,71])
我想要的是数据框:
Patient_ID Age Weight Age_Predicted
1 27 145 False
2 26 216 True
3 64 107 True
4 51 156 False
5 71 201 True
虽然我不确定该怎么做。
我尝试了列表理解:
df.loc[df[‘Age’].isna(), ‘imputed’] = True
但是,这不会将值插入到 Age 列的先前空值中,并且 False 值读取为 null 而不是 False。
我试过阅读类似的问题,但找不到任何相关的内容。制作两列新列会更容易吗,一列是估算的年龄,另一列是布尔标记?我该怎么做?任何帮助将不胜感激。
让我们做isna
并赋值
df['Age_Predicted'] = df['Age'].isna()
df.loc[df['Age_Predicted'],'Age'] = a
df
Out[323]:
Patient_ID Age Weight Age_Predicted
0 1 27.0 145 False
1 2 26.0 216 True
2 3 64.0 107 True
3 4 51.0 156 False
4 5 71.0 201 True
假设我有一个数据框如下:
Patient_ID Age Weight
1 27 145
2 NaN 216
3 NaN 107
4 51 156
5 NaN 201
我也有这个数组:
array([26,64,71])
我想要的是数据框:
Patient_ID Age Weight Age_Predicted
1 27 145 False
2 26 216 True
3 64 107 True
4 51 156 False
5 71 201 True
虽然我不确定该怎么做。
我尝试了列表理解:
df.loc[df[‘Age’].isna(), ‘imputed’] = True
但是,这不会将值插入到 Age 列的先前空值中,并且 False 值读取为 null 而不是 False。
我试过阅读类似的问题,但找不到任何相关的内容。制作两列新列会更容易吗,一列是估算的年龄,另一列是布尔标记?我该怎么做?任何帮助将不胜感激。
让我们做isna
并赋值
df['Age_Predicted'] = df['Age'].isna()
df.loc[df['Age_Predicted'],'Age'] = a
df
Out[323]:
Patient_ID Age Weight Age_Predicted
0 1 27.0 145 False
1 2 26.0 216 True
2 3 64.0 107 True
3 4 51.0 156 False
4 5 71.0 201 True