Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.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_R_Pandas_Range_Categories - Fatal编程技术网

根据值的范围将类别指定为一个新列python

根据值的范围将类别指定为一个新列python,python,r,pandas,range,categories,Python,R,Pandas,Range,Categories,我有一段R代码,我正试图弄清楚如何在Python中实现它。 它需要一个名为INDUST_CODE的列,并检查其值,以根据值的范围指定一个类别作为一个新列。请问我如何在python中执行类似操作 industry_index <- full_table_update %>% mutate(industry = case_when( INDUST_CODE < 1000 ~ 'Military_service', INDUST_COD

我有一段R代码,我正试图弄清楚如何在Python中实现它。 它需要一个名为INDUST_CODE的列,并检查其值,以根据值的范围指定一个类别作为一个新列。请问我如何在python中执行类似操作

  industry_index <- full_table_update %>%
      mutate(industry = case_when(
        INDUST_CODE < 1000 ~ 'Military_service',
        INDUST_CODE < 1500 & INDUST_CODE >= 1000 ~ 'Public_service',
        INDUST_CODE < 2000 & INDUST_CODE >= 1500 ~ 'Private_sector',
        INDUST_CODE >= 2000 ~ 'Others'
        )) %>%
      select(industry)
行业指数%
变异(行业=案例)(
行业代码<1000~‘军事服务’,
行业代码<1500和行业代码>=1000~‘公共服务’,
行业代码<2000和行业代码>=1500~‘私营部门’,
行业代码>=2000~‘其他’
)) %>%
选择(行业)

您可以使用
pandas.cut
按照您的示例将其组织到垃圾箱中

df = pd.DataFrame([500, 1000, 1001, 1560, 1500, 2000, 2300, 7, 1499], columns=['INDUST_CODE'])

   INDUST_CODE
0          500
1         1000
2         1001
3         1560
4         1500
5         2000
6         2300
7            7
8         1499

df['Categories'] = pd.cut(df['INDUST_CODE'], [0, 999, 1499, 1999, 100000], labels=['Military_service', 'Public_service', 'Private_sector', 'Others'])

   INDUST_CODE        Categories
0          500  Military_service
1         1000    Public_service
2         1001    Public_service
3         1560    Private_sector
4         1500    Private_sector
5         2000            Others
6         2300            Others
7            7  Military_service
8         1499    Public_service
Categories (4, object): [Military_service < Public_service < Private_sector < Others]
df=pd.DataFrame([50010001001601500200023001499],columns=['INDUST_code']))
工业代码
0          500
1         1000
2         1001
3         1560
4         1500
5         2000
6         2300
7            7
8         1499
df['Categories']=pd.cut(df['INDUST_CODE'],[0,999,1499,1999,100000],标签=['Military_service','Public_service','Private_sector','Others')
工业代码类别
0 500兵役
11000公共服务
21001公共服务
3 1560私营部门
4 1500个私营部门
52000其他
62300其他
7 7兵役
81499公共服务
类别(4,对象):[军事服务<公共服务<私营部门<其他]

您可以使用
pandas.cut
按照您的示例将其组织到垃圾箱中

df = pd.DataFrame([500, 1000, 1001, 1560, 1500, 2000, 2300, 7, 1499], columns=['INDUST_CODE'])

   INDUST_CODE
0          500
1         1000
2         1001
3         1560
4         1500
5         2000
6         2300
7            7
8         1499

df['Categories'] = pd.cut(df['INDUST_CODE'], [0, 999, 1499, 1999, 100000], labels=['Military_service', 'Public_service', 'Private_sector', 'Others'])

   INDUST_CODE        Categories
0          500  Military_service
1         1000    Public_service
2         1001    Public_service
3         1560    Private_sector
4         1500    Private_sector
5         2000            Others
6         2300            Others
7            7  Military_service
8         1499    Public_service
Categories (4, object): [Military_service < Public_service < Private_sector < Others]
df=pd.DataFrame([50010001001601500200023001499],columns=['INDUST_code']))
工业代码
0          500
1         1000
2         1001
3         1560
4         1500
5         2000
6         2300
7            7
8         1499
df['Categories']=pd.cut(df['INDUST_CODE'],[0,999,1499,1999,100000],标签=['Military_service','Public_service','Private_sector','Others')
工业代码类别
0 500兵役
11000公共服务
21001公共服务
3 1560私营部门
4 1500个私营部门
52000其他
62300其他
7 7兵役
81499公共服务
类别(4,对象):[军事服务<公共服务<私营部门<其他]

在R中,我通常使用
cut
来执行此操作,而不必键入每个范围-
cut(x,c(-Inf,100015002000,Inf),labels=c(“a”,“b”,“c”,“d”)
。因此,在Python中,我也会寻找一个cut函数——这看起来很有希望——在R中,我通常会使用
cut
来实现这一点,而不必键入每个范围-
cut(x,c(-Inf,100015002000,Inf),labels=c(“a”,“b”,“c”,“d”)
。所以在Python中,我也会寻找一个cut函数——这看起来很有希望——与R的cut函数几乎相同,就是这样!几乎和R的截函数一样,就是这样!