我有一个数据框,其中包含许多行row
(60000的顺序),其中包含三个字段:
'r'
(无位置;例如'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaabbbbbbbrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr'
)现在,我想同时为位置'a'
和'b'
映射。此映射显示在哪个时间点上,哪个row
包含a
或b
。因此,我们有:
mapping['a'] = [[]]*96 # list of length 96 with, initially, and empty list for the row-indexes. `
mapping['b'] = [[]]*96 # list of length 96 with, initially, and empty list for the row-indexes. `
for index, row in pd_shifts.iterrows():
for t in range(row['start']-1,row['stop']):
loc = row['shift'][t] # either 'a' or 'b'
if loc != 'r': # 'r' can be ignored.
mapping[loc][t].append(index)
我使用上面的for循环在时刻loc
上找到t
,并将其附加到mapping[loc][t]
上。似乎很容易。但是,每个索引在字符串中添加了a
或b
的次数。输出片段:
1535,1535,1536,1536,1536,1536,1536,1537,1537,
这是怎么回事? 为什么每个索引附加a
的次数是连续的?
我检查了每行是否具有唯一索引,并且每行仅迭代一次。
而且,每个起点和终点(及其之间的点)都被访问一次(“ print(t)”)。