当前的熊猫数据框:
Chunk_Num |reading_id |imei
____________________________________
0 0 4 35475624
1 0 6 35475624
2 0 6 35475624
3 0 7 35475624
4 0 7 35475624
5 0 11 35475624
我需要将每2个索引分组为1个Chunk_Num。
也就是说:
1)将索引0,1的行分配给Chunk_Num = 0
2)将索引2,3的行分配给Chunk_Num = 1
3)将索引4,5的行分配给Chunk_Num = 2
需要o / p:
Chunk_Num |reading_id |imei
____________________________________
0 0 4 35475624
1 0 6 35475624
2 1 6 35475624
3 1 7 35475624
4 2 7 35475624
5 2 11 35475624
现在,我有:
index_list= [0,1,2,3,4,5]
chunk_list_elements=[0,1,2]
for i , c in zip(index_list, chunk_list_elements): # 3rd el of chunk_list, is mapped to 3rd el of index_list.
transition2_df.loc[i,'Chunk_Num']= c
transition2_df.loc[i+1,'Chunk_Num']= c
i= i+2
display(transition2_df)
那给了我
Chunk_Num |reading_id |imei
____________________________________
0 0 4 35475624
1 1 6 35475624
2 2 6 35475624
3 2 7 35475624
4 0 7 35475624
5 0 11 35475624
我不确定我在这里缺少什么。除了使用zip()
外,我还接受其他方法。
请帮助。
答案 0 :(得分:1)
使用:
df['Chunk_Num'] = df.index // 2
或
df['Chunk_num'] = (df.index.notna().cumsum()-1)//2
输出:
Chunk_Num reading_id imei
0 0 4 35475624
1 0 6 35475624
2 1 6 35475624
3 1 7 35475624
4 2 7 35475624
5 2 11 35475624