在python中创建间隔

时间:2018-10-08 05:36:45

标签: python python-3.x categorical-data

列表项

我是编程新手,所以对此了解不多。

我有一个像这样的数据集:-

Type    Value

A        40

A        70     

A        125

A        150

B        50

B        80

B        130

B        150

我想要这种格式:

Type  <60  >60  >90  >120

A      1    3    2    2

B      1    3    2    2

基本上,对值进行计数和分类。

def delay_tag(list_name): empty_list= [] for i in range(0,len(airline)): 
if list_name[i] < 60: empty_list.append('<60') 
elif (list_name[i] > 60): empty_list.append('>60') 
elif (list_name[i] >= 120): empty_list.append('>120')
else: empty_list.append('>= 180') return(empty_list)

这是我尝试过的

2 个答案:

答案 0 :(得分:0)

这可能会给您一个想法。

import pandas as pd

df = pd.DataFrame({
        'Type':['A','A','A','A','B','B','B','B'],
        'Value':[40,70,125,150,50,80,130,150]
    })
df_lt60 = df[df['Value']<60]
print df_lt60.groupby('Type').Value.nunique()

df_gt60 = df[df['Value']>=60]
print df_gt60.groupby('Type').Value.nunique()

答案 1 :(得分:0)

import pandas as pd

df = pd.read.csv('your_file.csv')

fun = lambda x:{'<60':x.lt(60).sum(),'>60':x.gt(60).sum(),'>90':x.gt(90).sum(),'>120':x.gt(120).sum()}

pd.DataFrame(df.groupby('Type').Value.apply(fun)).reset_index().pivot('Type','level_1','Value')

Out[76]: 
level_1  <60  >120  >60  >90
Type                        
A          1     2    3    2
B          1     2    3    2