Python Pandas Dataframe - 如果flag为'1',将数据转换为NaN的最快方法是什么?

时间:2017-02-08 03:03:30

标签: python pandas

如果标志为“1”,将数据转换为NaN的最快方法是什么?

有数据帧表示数据和标志。 这些帧有数百列和50万条记录。

 df
                    S_1  S_2  ... S_n
2016-01-01 00:00    5.6  0.4  ... 6.7
2016-01-01 00:00    5.5  0.2  ... 6.6
2016-01-01 00:00    5.0  0.2  ... 6.7
....
2016-12-31 23:57    5.4  0.3  ... 6.7
2016-12-31 23:58    5.9  0.3  ... 6.8
2016-12-31 23:59    5.1  0.4  ... 7.0

 flag_table
                    S_1  S_2  ... S_n
2016-01-01 00:00      0    0  ...   1
2016-01-01 00:00      0    0  ...   0
2016-01-01 00:00      1    0  ...   0
....
2016-12-31 23:57      1    0  ...   0
2016-12-31 23:58      1    0  ...   1
2016-12-31 23:59      1    0  ...   0

这是我想要的表格:

 df
                    S_1  S_2  ... S_n
2016-01-01 00:00    5.6  0.4  ... NaN
2016-01-01 00:00    5.5  0.2  ... 6.6
2016-01-01 00:00    NaN  0.2  ... 6.7
....
2016-12-31 23:57    NaN  0.3  ... 6.7
2016-12-31 23:58    NaN  0.3  ... NaN
2016-12-31 23:59    NaN  0.4  ... 7.0

1 个答案:

答案 0 :(得分:3)

df.values[flag_table > 0] = np.nan