【问题标题】:Copying column that have NaN value in it and adding prefix复制其中具有 NaN 值的列并添加前缀
【发布时间】:2020-08-26 04:17:22
【问题描述】:
我有 x 个包含 NaN 值的列
通过以下代码我可以检查
for index,value in df.iteritems():
if value.isnull().values.any() == True:
这将向我显示哪些卷具有 NaN 的布尔值。
如果为真,我需要创建新列,其名称中将包含前缀“插值”+该列的名称。
因此,为了明确名称为“XXX”的列是否具有 NaN,我需要创建名称为“插值 XXX”的新列。
任何想法如何做到这一点?
【问题讨论】:
标签:
excel
pandas
dataframe
multiple-columns
nan
【解决方案1】:
类似这样的:
In [80]: df = pd.DataFrame({'XXX':[1,2,np.nan,4], 'YYY':[1,2,3,4], 'ZZZ':[1,np.nan, np.nan, 4]})
In [81]: df
Out[81]:
XXX YYY ZZZ
0 1.0 1 1.0
1 2.0 2 NaN
2 NaN 3 NaN
3 4.0 4 4.0
In [92]: nan_cols = df.columns[df.isna().any()].tolist()
In [94]: for col in df.columns:
...: if col in nan_cols:
...: df['Interpolation ' + col ] = df[col]
...:
In [95]: df
Out[95]:
XXX YYY ZZZ Interpolation XXX Interpolation ZZZ
0 1.0 1 1.0 1.0 1.0
1 2.0 2 NaN 2.0 NaN
2 NaN 3 NaN NaN NaN
3 4.0 4 4.0 4.0 4.0