在特定列中将正数和 NaN 转换为 1,将负数转换为 0

Convert positive numbers and NaN to 1 and negative numbers to 0 in a specific column

我有一个带有时间戳和相应值的大型 csv 文件。有没有一种简单方便的方法可以将所有正数(在第 1 列中)和 NaN 转换为 1,将负数转换为 0?我想将新数据框保存到新的 csv 文件中。示例:
来自:

                            0           1
0   2020-01-01 00:00:00+00:00      123.97
1   2020-01-01 00:04:00+00:00         NaN
2   2020-01-01 00:05:00+00:00      157.03
3   2020-01-01 00:06:00+00:00      184.82
4   2020-01-01 00:07:00+00:00     -197.36

至:

                            0           1
0   2020-01-01 00:00:00+00:00           1
1   2020-01-01 00:04:00+00:00           1
2   2020-01-01 00:05:00+00:00           1
3   2020-01-01 00:06:00+00:00           1
4   2020-01-01 00:07:00+00:00           0

我认为这里最简单的是使用 numpy.where with Series.lt 来代替 0:

df[1] = np.where(df[1].lt(0), 0, 1)

或反转掩码并转换为整数:

df[1] = (~df[1].lt(0)).astype(int)