python - 使用 Pandas 根据该行中的值从 csv 文件中删除特定行之前的行
问题描述
我有 csv 文件,如下所示。我想删除一行值 [Station Mac,第一次看到,最后一次看到,电源,数据包,BSSID,探测的 ESSID] 之前的所有行以进行进一步处理。我在 python 中使用 panadad 库来读取这个 csv 文件。我可以按索引删除特定行,但是可以更改我的文件在 fes 秒后重新加载行索引。我该怎么做。您的帮助将不胜感激。
BSSID, First time seen, Last time seen, channel, Speed, Privacy, Cipher, Authentication, Power, # beacons, # IV, LAN IP, ID-length, ESSID, Key
52:62:00:00:03:01, 2018-06-22 11:23:45, 2018-06-22 11:23:45, 9, -1, , , , -1, 0, 0, 0. 0. 0. 0, 0, ,
14:30:04:B2:F5:42, 2018-06-22 11:24:04, 2018-06-22 11:24:04, 11, -1, WPA, , , -88, 0, 1, 0. 0. 0. 0, 0, ,
14:30:04:D6C:95:62, 2018-06-22 11:23:50, 2018-06-22 11:24:08, 6, -1, WPA, , , -85, 0, 2, 0. 0. 0. 0, 0, ,
DC:09:4C:BF:6B:13, 2018-06-22 11:23:58, 2018-06-22 11:24:06, 7, 54, WPA2, CCMP, PSK, -75, 2, 0, 0. 0. 0. 0, 12, Death Stroke,
B4:FB:N4:97:F8:03, 2018-06-22 11:23:46, 2018-06-22 11:24:12, 6, 54, WPA2, CCMP, PSK, -74, 6, 6, 0. 0. 0. 0, 3, CSE,
C4:A8:1D:9K:B9:E8, 2018-06-22 11:23:57, 2018-06-22 11:24:12, 11, 22, WPA2 WPA, CCMP TKIP, PSK, -71, 1, 1, 0. 0. 0. 0, 20, SE-IX (Faculty Only),
78:8A:90:81:C1:31, 2018-06-22 11:23:54, 2018-06-22 11:24:06, 6, 54, WPA2, CCMP, PSK, -71, 4, 0, 0. 0. 0. 0, 3, CSE,
78:8A:20:49:^9:D1, 2018-06-22 11:23:44, 2018-06-22 11:24:12, 11, 54, WPA2, CCMP, PSK, -41, 58, 21, 0. 0. 0. 0, 3, CSE,
14:30:04:B3:FD:A2, 2018-06-22 11:23:46, 2018-06-22 11:24:12, 6, -1, , , , -1, 0, 0, 0. 0. 0. 0, 0, ,
14:30:KL:B3:52:22, 2018-06-22 11:23:47, 2018-06-22 11:24:12, 2, -1, WPA, , , -1, 0, 50, 0. 0. 0. 0, 0, ,
14:30:04:LC:9B:E2, 2018-06-22 11:23:48, 2018-06-22 11:24:01, 3, -1, , , , -1, 0, 0, 0. 0. 0. 0, 0, ,
14:U0:04:B3:52:62, 2018-06-22 11:23:49, 2018-06-22 11:24:12, 11, -1, WPA, , , -1, 0, 92, 0. 0. 0. 0, 0, ,
Station MAC, First time seen, Last time seen, Power, # packets, BSSID, Probed ESSIDs
macaddrees, 2018-06-22 11:23:45, 2018-06-22 11:23:45, -78, 8, 52:62:90:00:03:01,
macaddress, 2018-06-22 11:23:46, 2018-06-22 11:24:05, -73, 4, 14:30:04:BB:19:A2,
macaddress, 2018-06-22 11:23:52, 2018-06-22 11:24:12, -73, 5, (not associated) ,
macaddress, 2018-06-22 11:23:43, 2018-06-22 11:24:12, -71, 9, not assocaited,
macadress, 2018-06-22 11:23:52, 2018-06-22 11:23:52, -70, 2, (not associated) ,
macaddress, 2018-06-22 11:23:48, 2018-06-22 11:24:01, -69, 11, NAN,
macaddress, 2018-06-22 11:23:46, 2018-06-22 11:24:12, -65, 15, NAN,
macaddress, 2018-06-22 11:24:12, 2018-06-22 11:24:12, -62, 2, (not associated) ,
macaddress, 2018-06-22 11:24:01, 2018-06-22 11:24:12, -54, 2, NAN,
macaddress, 2018-06-22 11:23:49, 2018-06-22 11:24:12, -48, 97, NAN,
macaddress, 2018-06-22 11:23:43, 2018-06-22 11:24:12, -35, 54, NAN,UET Smart University
macaddress, 2018-06-22 11:23:47, 2018-06-22 11:24:03, -23, 108, NAN,
macaddress, 2018-06-22 11:23:49, 2018-06-22 11:23:49, -1, 9, NAN,
解决方案
我们可以读取文件,然后用 2 个字符串将split
其放入列表s
中,一个包含空行之前的所有内容(\n\n
用作分隔符),一个包含后面的所有内容。完成后,我们可以将这些字符串作为 CSV 读取到单独的 DataFrame 中:
with open('test.csv') as f:
s = f.read().split('\n\n')
df1 = pd.read_csv(pd.compat.StringIO(s[0]))
df2 = pd.read_csv(pd.compat.StringIO(s[1]))
df1:
BSSID First time seen Last time seen channel \
0 52:62:00:00:03:01 2018-06-22 11:23:45 2018-06-22 11:23:45 9
1 14:30:04:B2:F5:42 2018-06-22 11:24:04 2018-06-22 11:24:04 11
2 14:30:04:D6C:95:62 2018-06-22 11:23:50 2018-06-22 11:24:08 6
3 DC:09:4C:BF:6B:13 2018-06-22 11:23:58 2018-06-22 11:24:06 7
4 B4:FB:N4:97:F8:03 2018-06-22 11:23:46 2018-06-22 11:24:12 6
...
df2:
Station MAC First time seen Last time seen Power # packets \
0 macaddrees 2018-06-22 11:23:45 2018-06-22 11:23:45 -78 8
1 macaddress 2018-06-22 11:23:46 2018-06-22 11:24:05 -73 4
2 macaddress 2018-06-22 11:23:52 2018-06-22 11:24:12 -73 5
3 macaddress 2018-06-22 11:23:43 2018-06-22 11:24:12 -71 9
4 macadress 2018-06-22 11:23:52 2018-06-22 11:23:52 -70 2
推荐阅读
- postgresql - 将 .sql 文件导入特定模式(不在公共模式中)PostgreSQL 12
- vb.net - 刷新Datagridview vb.net后的滚动条位置
- java - 为所有集成测试类运行一次 liquibase 和休眠
- mysql - API 控制器解析返回未定义
- c# - MemoryMappedFile 的大小始终相同
- xampp - 在 mac os big sur 11.4 上更新后 Xampp 无法正常工作
- go-gorm - 如何在gorm中对相关数据进行分页?
- asp.net-core - Asp .Net Core - 无法投射 Guid 异常
- r - 将列表(列表转换为列表形式)重塑为数据框 - R
- karate - 空手道 - 图像响应比较