Создание интервалов в питоне - PullRequest
0 голосов
/ 08 октября 2018

Элемент списка

Я новичок в программировании, поэтому не знаю много об этом.

У меня есть такой набор данных: -

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 голосов
/ 08 октября 2018
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
0 голосов
/ 08 октября 2018

Это может дать вам представление.

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()
...