Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在列中分组数据_Python_Pandas - Fatal编程技术网

Python 如何在列中分组数据

Python 如何在列中分组数据,python,pandas,Python,Pandas,这是我的数据框架,我试图实现的是,将体验列(0-5,5-10,10-20)分组在列中 gender education_level experience training_hours educatn_levl 0 Male Graduate 9 21 0 1 Female Graduate 5 98 0 2 Male

这是我的数据框架,我试图实现的是,将体验列(0-5,5-10,10-20)分组在列中

gender  education_level experience  training_hours  educatn_levl
0   Male    Graduate    9              21                        0
1   Female  Graduate    5              98                        0
2   Male    High School 0              15                        1
3   Male    Masters    11              39                        2
4   Male    Graduate    0              72                        0
这是“体验”栏中呈现的独特价值

df2['experience'].unique()

array(['9', '5', '0', '11', '10', '14', '3', '20', '8', '4', '13', '2',
       '6', '7', '1', '19', '15', '16', 0, '17', '18', '12'], dtype=object)

您可以使用pd.cut 考虑以下示例:

df
           A      B
0   0.039036  644.0
1   0.452201  579.0
2   0.123197  375.0
3   0.158165  799.0
4   0.469882  711.0
..       ...    ...
95  0.062099  379.0
96  0.329982  353.0
97  0.607003  668.0
98  0.782589  730.0
99  0.189787  325.0

bins = [x for x in range(0,int(df['B'].max()),100)]

df['interval'] = pd.cut(df['B'], bins)
df
           A      B    interval
0   0.039036  644.0  (600, 700]
1   0.452201  579.0  (500, 600]
2   0.123197  375.0  (300, 400]
3   0.158165  799.0  (700, 800]
4   0.469882  711.0  (700, 800]
..       ...    ...         ...
95  0.062099  379.0  (300, 400]
96  0.329982  353.0  (300, 400]
97  0.607003  668.0  (600, 700]
98  0.782589  730.0  (700, 800]
99  0.189787  325.0  (300, 400]
[100 rows x 3 columns]

您可以使用pd.cut 考虑以下示例:

df
           A      B
0   0.039036  644.0
1   0.452201  579.0
2   0.123197  375.0
3   0.158165  799.0
4   0.469882  711.0
..       ...    ...
95  0.062099  379.0
96  0.329982  353.0
97  0.607003  668.0
98  0.782589  730.0
99  0.189787  325.0

bins = [x for x in range(0,int(df['B'].max()),100)]

df['interval'] = pd.cut(df['B'], bins)
df
           A      B    interval
0   0.039036  644.0  (600, 700]
1   0.452201  579.0  (500, 600]
2   0.123197  375.0  (300, 400]
3   0.158165  799.0  (700, 800]
4   0.469882  711.0  (700, 800]
..       ...    ...         ...
95  0.062099  379.0  (300, 400]
96  0.329982  353.0  (300, 400]
97  0.607003  668.0  (600, 700]
98  0.782589  730.0  (700, 800]
99  0.189787  325.0  (300, 400]
[100 rows x 3 columns]

感谢您在问题中展示您的尝试,请您在问题中也发布预期输出的示例,以便更好地理解您的问题。我想要一个类似于0-5、5-10的专栏,10-20,然后我想分配经验列的值,基于这个组假设我选择经验9,那么它将分配给的组是5-10,谢谢你在问题中展示了你的尝试,为了更好地理解你的问题,你可以在你的问题中也发布预期结果的样本吗?我想要一个类似于0-5,5-10的专栏,10-20,然后我想根据组分配经验列的值,假设我选择经验9,那么它将分配给的组是5-10TypeError:“>=”在“str”和“int”的实例之间不受支持。我收到这个错误,可能是因为你的经验列是对象类型。请尝试将其转换为整数或浮点。感谢buddy的帮助,它解决了TypeError:“>=”在“str”和“int”的实例之间不受支持。我收到这个错误,可能是因为你的经验列是对象类型。试着把它转换成整数或浮点数。谢谢你的帮助,它成功了