python - 根据每个值对列的值进行分组

标签 python pandas data-science data-analysis

我有一个表,其中有一些列,其中一列的值从 0 到 400。我们将其称为 x 列。

现在我想根据值对表中的这些信息进行分组。 我想要一个新列“valuerange”来说明 x 列的值在哪个范围内。 例如,x 列的值位于特定行 120,因此我想要在新列“100-150”中。

也许我需要提到该表是一个包含 210k 行的大型数据框。

我已经尝试过自己了,但我无法达到预期的结果,因为我是 python 新手,刚刚习惯了 java。

这是我尝试过的一些代码:

df1 = df['valuerange'] = ['0-50' if p<=50 '51-100' elif p<=100 '101-150' elif p<=150
                            '151-200' elif p<=200 '201-250' elif p<=250 '251-300' elif p<=300
                            '301-350' elif p<=350 '351-400' elif p<=400 for p in df.x]

最佳答案

pandas.cut可能就是你所需要的。

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'values' : np.random.randint(low=0, high=401, size=500)
})
# df.head():
    values
0   35
1   10
2   61
3   19
4   144
<小时/>
df['valuerange'] = pd.cut(
    df['values'],
    bins= [0,50,100,150,200,250,300,350,400],
    labels=['0-50', '51-100',
        '100-150', '151-200', '201-250', 
        '251-300', '301-350', '351-400']
)
    values  valuerange
0   35      0-50
1   10      0-50
2   61      51-100
3   19      0-50
4   144     100-150

关于python - 根据每个值对列的值进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56986130/

相关文章:

python - 在 Python/wxPython 中访问文件元数据

python - 中和不可见的 ASCII 字符以打印 ASCII 表

python - Pandas - 矢量化 "any element in a column within the next timeframe is True"

python - 在 R 中创建我的数据框列的所有可能组合

python - 手动定义种子特征的 "where clause"?

python - 在设备上使用 Paramiko exec_command 执行命令不起作用

python - 为什么我无法按预期显示错误消息?

python - 简单数据操作 : R vs python

python - 在 Seaborn 的 Regplot 中使用日期时间

python - 如何通过多列在两个DataFrame中添加不同的列(Pandas)