【问题标题】:How do I change the values of a column with respect to certain conditions using pandas? [duplicate]如何使用熊猫根据某些条件更改列的值? [复制]
【发布时间】:2021-06-07 12:35:57
【问题描述】:

数据框包含 5 列,分别命名为 V、W、X、Y、Z。

我应该根据以下内容更改数据集中 X 列中的值:

  • 如果 1 到 100,则改为 1
  • 如果101到200,改为2
  • 如果201到300,改为3

否则,改为 4

最有效的方法是什么?

【问题讨论】:

标签: python pandas


【解决方案1】:

使用一个例子df和@Pygirl的想法:

df = pd.DataFrame({'a': np.random.randint(0, 400, 10), 'b': np.random.randint(0, 400, 10), 'X': np.zeros(10)})

给我们:

|    |   a |   b |   X |
|---:|----:|----:|----:|
|  0 | 237 | 188 |   0 |
|  1 | 212 | 147 |   0 |
|  2 | 135 |  30 |   0 |
|  3 | 296 | 154 |   0 |
|  4 | 133 | 219 |   0 |
|  5 | 185 | 317 |   0 |
|  6 | 365 |   5 |   0 |
|  7 | 108 | 189 |   0 |
|  8 | 358 |  34 |   0 |
|  9 | 105 |   2 |   0 |

pd.cutdoc我们可以得到:

df['X'] = pd.cut(df.a, [0, 100, 200, 300, np.inf], labels=[1, 2, 3, 4])

导致:

|    |   a |   b |   X |
|---:|----:|----:|----:|
|  0 | 377 | 232 |   4 |
|  1 |  61 |  11 |   1 |
|  2 |  52 | 217 |   1 |
|  3 | 191 |  42 |   2 |
|  4 | 178 | 228 |   2 |
|  5 | 235 | 206 |   3 |
|  6 |  39 | 222 |   1 |
|  7 | 316 | 210 |   4 |
|  8 | 135 | 390 |   2 |
|  9 |  44 | 311 |   1 |

【讨论】:

    猜你喜欢
    • 2023-02-21
    • 2021-09-02
    • 2018-02-27
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 2017-04-01
    相关资源
    最近更新 更多