我需要用一些组替换我的 DataFrame 中的列中的值

Posted

技术标签:

【中文标题】我需要用一些组替换我的 DataFrame 中的列中的值【英文标题】:I need to replace the values in the columns in my DataFrame with some groups 【发布时间】:2018-05-29 16:55:32 【问题描述】:

问题表述

目前,df['B'] 的值范围为 0 到 16。我希望将它们替换为如下:

  S where df['B'] <= 2
  M where 2 < df['B'] <= 6
  L where df['B'] >= 6

数据帧

A       B
5180    2
5784    0
5784    16
7269    4
7268    12

期望的输出

A       B
5180    S
5784    S
5784    L
7269    M
7268    L

是否有 pandas 功能可以做到这一点?

【问题讨论】:

我们需要样本数据 How to create new values in a pandas dataframe column based on values from another column的可能重复 我们至少需要 1 个问题 @Shiven Singh 这是一个基本的分箱操作,上面的链接答案会有所帮助 【参考方案1】:

我假设您的数据框的名称是 df

df['B'] = pd.cut(df['B'], bins = [0, 3, 7, 17], labels=["S", "M", "L"])

分箱意味着:

for range [0,3) we use label[0] ('S')  

for range [3,7) we use label[1] ('M')

for range [7,17) we use label[2] ('L')

【讨论】:

以上是关于我需要用一些组替换我的 DataFrame 中的列中的值的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能从我的 DataFrame 中的“日期”列中提取月份的列? [复制]

用 Sql Server 中的列数据替换行

用字典值替换 Pandas Dataframe 中的部分字符串

请求用@variable 替换列名

删除pandas数据帧中的重复项后,替换特定的列值

在不使用 UDF 的情况下基于映射转换 Spark DataFrame 中的列