【问题标题】:Convert positive numbers and NaN to 1 and negative numbers to 0 in a specific column将特定列中的正数和 NaN 转换为 1,将负数转换为 0
【发布时间】:2021-06-02 22:26:31
【问题描述】:

我有一个带有时间戳和相应值的大型 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

【问题讨论】:

    标签: python pandas type-conversion converters


    【解决方案1】:

    我认为这里最简单的方法是使用numpy.whereSeries.lt,而不是像0

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 2015-06-14
      • 2020-06-13
      • 2013-07-06
      相关资源
      最近更新 更多