我有以下数据帧(df):
SERV_OR_IOR_ID IMP_START_TIME IMP_CLR_TIME IMP_START_TIME_BIN IMP_CLR_TIME_BIN
0 -1447310116 23:59:00 00:11:00 47 0
1 1673545041 00:00:00 00:01:00 0 0
2 -743717696 23:59:00 00:00:00 47 0
3 58641876 04:01:00 09:02:00 8 18
我想复制IMP_START_TIME_BIN
小于IMP_CLR_TIME_BIN
的行,其数量等于IMP_START_TIME_BIN
和IMP_CLR_TIME_BIN
的绝对差的数量,然后在增加IMP_START_TIME_BIN
的值的同时,在该行下面追加(在数据帧的末尾)或更可取的追加。你知道吗
例如,对于第3行,差异是10,因此我应该在数据帧中追加10行,将IMP_START_TIME_BIN
中的值从8(不包括)增加到18(包括)。你知道吗
结果应该是这样的:
SERV_OR_IOR_ID IMP_START_TIME IMP_CLR_TIME IMP_START_TIME_BIN IMP_CLR_TIME_BIN
0 -1447310116 23:59:00 00:11:00 47 0
1 1673545041 00:00:00 00:01:00 0 0
2 -743717696 23:59:00 00:00:00 47 0
3 58641876 04:01:00 09:02:00 8 18
4 58641876 04:01:00 09:02:00 9 18
... ... ... ... ... ...
13 58641876 04:01:00 09:02:00 18 18
为此,我尝试了以下操作,但没有成功:
for i in range(len(df)):
if df.ix[i,3] < df.ix[i,4]:
for j in range(df.ix[i,3]+1, df.ix[i,4]+1):
df = df.append((df.set_value(i,'IMP_START_TIME_BIN',j))*abs(df.ix[i,3] - df.ix[i,4]))
我该怎么做?你知道吗
您可以使用此解决方案,只有必要的索引值必须是唯一的:
相关问题 更多 >
编程相关推荐