我正在尝试将(pcap数据)packetList转换为数据帧,以便我可以对其执行预处理。 我已经使用 scapy 库来读取 pcap 文件。
import pandas as pd
from scapy.all import *
packets_list=rdpcap('D:/anaconda/path/youtube2.pcap')
//return type PacketList
print(packets_list[3].show()) //Display contents of the packet
df = pd.DataFrame (packets_list,columns=
['No.','Time','Source','Destination','Protocol','Length','Info'])
print (df)
错误:
TypeError:使用不兼容的数据和 dtype 调用 DataFrame 构造函数:无法将大小为 66 的序列复制到维度为 1 的数组轴
请帮助任何人。
我用过这样的东西:
fields = {
UDP: ('sport', 'dport'),
# ...
}
df = pd.DataFrame({field: [getattr(pkt[layer], field) if layer in pkt else pd.NA
for pkt in packets_list]
for layer, field_list in fields.items()
for field in field_list})
尝试 pdsniff 它对数据帧有好处
项目描述 使用 Scapy 库异步捕获和处理网络数据包,并将结果转换为 pandas DataFrame pip 安装 pdsniff