【问题标题】:How to make column value categories and add to a new column?如何制作列值类别并添加到新列?
【发布时间】:2021-11-09 11:23:45
【问题描述】:

我有一个数据框,其中一列中的心率值范围为 0-280。我正在制作类别并将它们添加到新列中,如下所示:

HR_df1['HRCat']=''
HR_df1.loc[(HR_df1['HR'] > 10) & (HR_df1['HR'] <= 20), 'HRCat'] = '10-20'
HR_df1.loc[(HR_df1['HR'] > 20) & (HR_df1['HR'] <= 30), 'HRCat'] = '20-30'
HR_df1.loc[(HR_df1['HR'] > 30) & (HR_df1['HR'] <= 40), 'HRCat'] = '30-40'
...
HR_df1.loc[(HR_df1['HR'] > 260) & (HR_df1['HR'] <= 270), 'HRCat'] = '260-270'
HR_df1.loc[HR_df1['HR'] > 270,'HRCat'] = '270-280'

这是一项繁重的任务,需要更多代码行。有什么方法可以在 Python 中使用 Loops 来做同样的事情吗?

【问题讨论】:

标签: python dataframe loops for-loop


【解决方案1】:

只需使用单线:

HR_df1['HRCat'] = pd.cut(df['HR'], np.arange(-1, 281, 10), labels=[f'{x}-{x + 10}' for x in np.arange(0, 280, 10)])

【讨论】:

  • 解决了我的问题。你能简单解释一下这段代码吗?
  • @Huzaifa 我认为文档提供了更多详细信息,here
  • 当然。我只是没有得到 labels=[f'{x}-{x + 10}' 部分。
  • @Huzaifa 这是一个f-string,用于制作标签名称,如10-2020-30等等...
猜你喜欢
  • 1970-01-01
  • 2021-06-09
  • 2015-12-12
  • 2019-01-30
  • 2018-03-04
  • 2021-09-26
  • 1970-01-01
  • 2020-03-30
  • 2021-11-10
相关资源
最近更新 更多