我有一个流量数据,看起来像这样.在这里,每列都有格式为meters:seconds
的数据.与第1行第2列一样,57:9
表示57
米9
秒.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0:0 | 57:9 | 166:34 | 178:37 | 203:44 | 328:63 | 344:65 | 436:77 | 737:108 | None |
0:0 | 166:34 | 178:37 | 203:43 | 328:61 | 436:74 | 596:51 | 737:106 | None | None |
0:0 | 57:6 | 166:30 | 178:33 | 203:40 | 328:62 | 344:64 | 436:74 | 596:91 | None |
0:0 | 203:43 | 328:61 | None | None | None | None | None | None | None |
0:0 | 57:7 | 166:20 | 178:43 | 203:10 | 328:61 | None | None | None | None |
我想从数据帧中提取meters
个值,并按升序将它们存储在列表中.然后创建一个新的数据帧,其中的列标题将是meters
值(出现在列表中).然后,它将匹配父数据帧中的meter
值,并将相应的second
值添加到下面.缺失的meters:second
对应被替换为NaN
,并且在该位置的当前对将移动到同一行中的下一列.
预期的结果是:
list = [0,57,166,178,203,328,344,436,596,737]
个
dataframe:
0 | 57 | 166 | 178 | 203 | 328 | 344 | 436 | 596 | 737 |
---|---|---|---|---|---|---|---|---|---|
0 | 9 | 34 | 37 | 44 | 63 | 65 | 77 | NaN | 108 |
0 | NaN | 34 | 37 | 43 | 61 | NaN | 74 | 51 | 106 |
0 | 6 | 30 | 33 | 40 | 62 | 64 | 74 | 91 | None |
0 | NaN | NaN | NaN | 43 | 61 | None | None | None | None |
0 | 7 | 20 | 43 | 10 | 61 | None | None | None | None |
我知道我必须使用循环来迭代整个数据帧.我是新手,所以我不能解决这个问题.我试着使用str.split()
,但它只对1列有效.我有98列和290行.这只是一个月的数据.我将有12个月的数据.所以,需要建议和帮助.