【问题标题】:Arange ordinal number for range of values in column列中值范围的排列序数
【发布时间】:2021-09-17 22:11:35
【问题描述】:

所以我有某种数据框,其中一列的值范围从 139 到 150(值重复的行)。如何创建新列,它将根据提到的列分配序数值?例如,139 -> 0、140 -> 1、...、150 -> 10

UPD:Mozway 的回答很合适,谢谢!

【问题讨论】:

  • 发布一些代码来演示您在哪里遇到了问题?
  • 使用字典? '139': '0'等等
  • df.groupby('x').ngroup()df.x.astype('category').cat.codes
  • 鉴于这些是连续块减法中的数字,因为@mozway suggests 似乎最合理。假设您尝试将 any 分类转换为序数值,标准方法是 factorize df['new col'] = pd.factorize(df['col'])[0]
  • 啊。为什么@mozway 的回答不起作用?

标签: python pandas dataframe


【解决方案1】:

只需减去 139: df['col'] -= 139

或者,获取一个新列:df['new'] = df['col'] - 139

【讨论】:

  • @Michael 我猜这是问题中的错误。如果不是,OP应该解释逻辑。
  • 对不起,我是新来的,想弄清楚如何以体面的方式输入数据
猜你喜欢
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 2019-01-01
  • 2021-11-03
  • 2015-05-02
  • 1970-01-01
  • 2014-02-22
相关资源
最近更新 更多