【问题标题】:Categorise column based upon another column values根据另一列值对列进行分类
【发布时间】:2019-02-25 05:33:45
【问题描述】:



我有一个 DataFrame 如下:
col1 num agg_col
12  200   0
13  300   0
14  400   0
15 500   0
16  600   0
17  700   0

我正在尝试根据 col1 中的值填充 agg_col。
例如,如果 col1 为 12 - 14,则在 agg_col、15-16、
上填充 1 在 agg_col 上填充 2。如果 col1 = 17,则填充 3。

我写了以下python代码:

df['agg_col'][(df['col1'] >= 12) & (df['col1'] <= 14)] = 1


但我被困在这里,无法继续。请帮忙!!!

【问题讨论】:

  • 试图找到一个更受欢迎的重复项,但基本上你想使用np.select 来定义条件列表和另一个用于选择的列表。或pd.cut,如果它是一组连续的垃圾箱。 See this
  • @ALollz...非常感谢!!!
  • 你得到的错误是什么?当我尝试时,这句话似乎对我很有效。
  • @thegreatcoder......SettingWithCopyWarning:试图在数据帧的切片副本上设置值。尝试使用 .loc[row_indexer,col_indexer] = value 代替。这是警告!!!

标签: python-3.x pandas data-cleaning


【解决方案1】:

试试看pd.cut

pd.cut(df.col1,[0,15,16,17],labels=[1,2,3])
Out[988]: 
0    1
1    1
2    1
3    1
4    2
5    3
Name: col1, dtype: category
Categories (3, int64): [1 < 2 < 3]

【讨论】:

    猜你喜欢
    • 2015-10-29
    • 2016-09-28
    • 1970-01-01
    • 2022-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多