如何在每5行之后在pandas数据框中添加新id,

2024-05-23 15:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在每5行之后在pandas数据框中添加新id

所以我的数据是:

index            DateTime       A1   A2   A4        AMS  baseD       
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   
16610747    2011-01-03T13:15:59 112 103 368010037   128 003669730   
16610749    2011-01-03T13:17:00 95  90  368010037   128 003669730   
16610751    2011-01-03T13:18:00 75  67  368010037   128 003669730   
16610753    2011-01-03T13:18:59 42  33  368010037   128 003669730   
16610755    2011-01-03T13:20:00 14  7   368010037   128 003669794   
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   
16610747    2011-01-03T13:15:59 112 103 368010037   128 003669730   
16610749    2011-01-03T13:17:00 95  90  368010037   128 003669730   
16610751    2011-01-03T13:18:00 75  67  368010037   128 003669730   
16610753    2011-01-03T13:18:59 42  33  368010037   128 003669730   
16610755    2011-01-03T13:20:00 14  7   368010037   128 003669794   

我需要的是一个ID列,它每5行递增一次

index            DateTime       A1   A2   A4        AMS  baseD      ID 
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   1
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   1
16610747    2011-01-03T13:15:59 112 103 368010037   128 003669730   1
16610749    2011-01-03T13:17:00 95  90  368010037   128 003669730   1
16610751    2011-01-03T13:18:00 75  67  368010037   128 003669730   1
16610753    2011-01-03T13:18:59 42  33  368010037   128 003669730   2
16610755    2011-01-03T13:20:00 14  7   368010037   128 003669794   2
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   2
16610745    2011-01-03T13:15:00 130 122 368010037   128 003669730   2
16610747    2011-01-03T13:15:59 112 103 368010037   128 003669730   2
16610749    2011-01-03T13:17:00 95  90  368010037   128 003669730   3
16610751    2011-01-03T13:18:00 75  67  368010037   128 003669730   3
16610753    2011-01-03T13:18:59 42  33  368010037   128 003669730   3
16610755    2011-01-03T13:20:00 14  7   368010037   128 003669794   3
16610755    2011-01-03T13:20:00 14  7   368010037   128 003669794   3

Tags: 数据ida2pandasdatetimeindexa1based
1条回答
网友
1楼 · 发布于 2024-05-23 15:20:45

您可以生成1,2,3…的序列,。。。。对于第5%的数据帧行,重复(np.repeat)每个值5次,并分配为ID:-)

df['id'] = np.repeat(np.arange(np.ceil(len(df)/5),5)[:len(df)]

相关问题 更多 >