复制其中具有 NaN 值的列并添加前缀
Copying column that have NaN value in it and adding prefix
我有 x 列包含 NaN 值
使用以下代码我可以检查
for index,value in df.iteritems():
if value.isnull().values.any() == True:
这将向我展示哪些卷具有 NaN 的布尔值。
如果为真,我需要创建新列,其名称中将包含前缀 'Interpolation' + 该列的名称。
因此,为了弄清楚名称为 'XXX' 的列是否有 NaN,我需要创建名称为 'Interpolation XXX' 的新列。
任何想法如何做到这一点?
像这样:
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
我有 x 列包含 NaN 值
使用以下代码我可以检查
for index,value in df.iteritems():
if value.isnull().values.any() == True:
这将向我展示哪些卷具有 NaN 的布尔值。
如果为真,我需要创建新列,其名称中将包含前缀 'Interpolation' + 该列的名称。 因此,为了弄清楚名称为 'XXX' 的列是否有 NaN,我需要创建名称为 'Interpolation XXX' 的新列。 任何想法如何做到这一点?
像这样:
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