我有一个从csv读取的数据帧。将条件行数据合并到新的数据帧
time node txrx src dest txid hops
0 34355146 2 TX 2 1 1 NaN
1 34373907 1 RX 2 1 1 1.0
2 44284813 2 TX 2 1 2 NaN
3 44302557 1 RX 2 1 2 1.0
4 44596500 3 TX 3 1 2 NaN
5 44630682 1 RX 3 1 2 2.0
6 50058251 2 TX 2 1 3 NaN
7 50075994 1 RX 2 1 3 1.0
8 51338658 3 TX 3 1 3 NaN
9 51382629 1 RX 3 1 3 2.0
我需要能够创建一个新的数据帧这需要在TX/RX行中的值,创建一个单独的行,每对:
- 花点时间从“时间'栏。如果'txrx'中的值是'TX',则将其放入'tx_time'列中,如果该值为“RX”,则将该值放入'rx_time'列(在新数据帧的行内)。
- “啤酒花”的值取自RX行。
- 这是为每个['src','dest','txid']组完成的。
- “节点”列被忽略。然后
东风应该是这样的:
tx_time rx_time src dest txid hops
0 34355146 34373907 2 1 1 1
1 44284813 44302557 2 1 2 1
2 44596500 44630682 3 1 2 2
3 50058251 50075994 2 1 3 1
4 51338658 51382629 3 1 3 2
我明白怎么做步骤(3),但是我被困在如何尝试了一下(1)和(2)。建议吗?
我已经从@Wen的_pivot_table_的解决方案,但_defaultdict_和piRSquared和费沙_concat_方法也都做的工作。我敢肯定,有一个关于哪个更有效的讨论:) – mbadd