我只是尝试进行循环,但是没有用, 我的数据在哪里
label_count label aging_period
0 21 good 0-3
1 1 TNR 3-6
2 80 average 3-6
3 19 bad 3-6
4 75 good 3-6
5 13 TOTB 6-9
6 104 average 6-9
7 128 bad 6-9
8 56 good 6-9
9 12 TOTB 9-12
10 101 average 9-12
11 275 bad 9-12
12 35 good 9-12
13 5 TOTB 12-24
14 26 average 12-24
15 46 bad 12-24
16 20 good 12-24
17 1 TOTB 24+
18 1 average 24+
19 3 good 24+
我想要一个类似的值的列表,
average = [0, 80, 104, 101, 26, 1]
bad = [0, 19, 128, 275, 46, 0]
现在,由于没有0-3的平均值,因此加0。
我的意思是,对于每个“ aging_period”和每个标签(如果存在数据),则添加其核心,然后添加label_count,否则在列表中添加0
答案 0 :(得分:2)
您可以先使用pivot
然后使用fillna
df.pivot('label','aging_period','label_count').fillna(0).astype(int)
Out[557]:
aging_period 0-3 12-24 24+ 3-6 6-9 9-12
label
TNR 0 0 0 1 0 0
TOTB 0 5 1 0 13 12
average 0 26 1 80 104 101
bad 0 46 0 19 128 275
good 21 20 3 75 56 35
然后切片您需要的索引
nedf=df.pivot('label','aging_period','label_count').fillna(0).astype(int)
nedf.loc['average'].tolist()
Out[559]: [0, 26, 1, 80, 104, 101]