根据另一个数据框对数据框的列进行分组

时间:2019-03-14 05:00:03

标签: python pandas dataframe grouping

基于此数据框

  df1  Name     Age
       Johny     15
       Diana     35
       Doris     97
       Peter     25
       Antony    55

例如,我有此数据框,其中包含要使用的范围数

 df2 Header   Init1   Final1   Init2  Final2  Init3  Final3
     Names    NaN      NaN     NaN     NaN     NaN    NaN
     Age       0        20      21      50      51    100

我正在寻找的是得到这样的结果

  df3  Name     Age
       Johny    0-20
       Diana    21-50
       Doris    51-100
       Peter    21-50
       Antony   51-100

我不知道 cut()是否是可能的解决方案,但是我是python的新手。

1 个答案:

答案 0 :(得分:2)

使用pd.cut

l = df2.iloc[1,1:].tolist()
labels = [str(t[0])+'-'+str(t[1]) for t in zip(l[::1],l[1::1])]

df['Age'] = pd.cut(df['Age'], bins=l, labels=labels)

print(df)
     Name     Age
0   Johny    0-20
1   Diana   21-50
2   Doris  51-100
3   Peter   21-50
4  Antony  51-100