我正在分析一个由5列组成的互联网通信数据集,下面是一个示例
| IP源|IPDst|端口源|端口日期|长度|
| - ------|- ------|- ------|- ------|- ------|
| IP1|IP2|初级1|第二阶段|三十五|
| IP3防护等级|防护等级4|Pr3|Pr4|三十六|
| IP2|IP1|第二阶段|初级1|八十八|
| 防护等级4|IP3防护等级|Pr4|Pr3|一百五十|
| IP5防护等级|IP6防护等级|Pr5|Pr6|十一|
| IP1|防护等级4|Pr8|Pr9|三十六|
我想获取相同的数据集,但具有新列Length 2,其中Length 2是符合这些条件的行的值:
IPSrc = IPDst
IPDst = IPSrc
PortSrc = PortDst
PortDst = PortSrc
因此,在本例中,理想结果是:
| IP源|IPDst|端口源|端口日期|长度|长度2|
| - ------|- ------|- ------|- ------|- ------|- ------|
| IP1|IP2|初级1|第二阶段|三十五|八十八|
| IP3防护等级|防护等级4|Pr3|Pr4|三十六|一百五十|
| IP2|IP1|第二阶段|初级1|八十八|三十五|
| 防护等级4|IP3防护等级|Pr4|Pr3|一百五十|三十六|
| IP5防护等级|IP6防护等级|Pr5|Pr6|十一||
| IP1|防护等级4|Pr8|Pr9|三十六||
已知数据集包含100万行,如果给出的答案能考虑性能,我们将不胜感激。
提前感谢:)
1条答案
按热度按时间g9icjywg1#
使用
DataFrame.join
,匹配列转换为index
,列在参数on
中: