【发布时间】:2018-06-14 19:46:10
【问题描述】:
我有一个带有多列的 pandas 数据框 df。其中一列是 Col1,其中包含浮点值或 NaN:
df
+----+------+-----+
| No | Col1 | ... |
+----+------+-----+
| 12 | 10 | ... |
| 23 | NaN | ... |
| 34 | 5 | ... |
| 45 | NaN | ... |
| 54 | 22 | ... |
+----+------+-----+
我在 Col1 上运行一个函数,不包括缺失值 (NaN),如下所示:
StandardScaler().fit_transform(df.loc[pd.notnull(df[Col1]), [Col1]])
想象一下结果是一个像这样的 numpy.ndarray:
+-----+
| Ref |
+-----+
| 2 |
| 5 |
| 1 |
+-----+
请注意,此数组的长度与原始列 Col1 的长度不同。
我需要一个解决方案来将数组Ref 作为列添加到df。对于Col1 为NaN 的每一行,新列Ref 也会得到NaN。
所需的输出如下所示:
+----+------+-----+-----+
| No | Col1 | ... | Ref |
+----+------+-----+-----+
| 12 | 10 | ... | 2 |
| 23 | NaN | ... | NaN |
| 34 | 5 | ... | 5 |
| 45 | NaN | ... | NaN |
| 54 | 22 | ... | 1 |
+----+------+-----+-----+
【问题讨论】:
标签: python pandas numpy dataframe