我正在使用一个数据集,该数据集的sourceusername列中有“-”,sourcehostname列中有“None”。台式机的IP通常保持不变,而笔记本电脑的IP则有所变化。我试图用我掌握的信息来填补空白。此数据帧具有用户将注销、新用户将登录并创建代理通信的计算机。这就是数据帧的外观:
df
sourceusername sourcehostname sourceaddress destinationhostname
0 1111 Computer_1 10.11.2.22 khms0.google.com
1 1111 Computer_1 10.11.2.22 photos.wavebid.com
2 1112 Computer_2 10.11.2.23 www.msn.com
3 1113 Computer_3 10.11.2.24 log.pinterest.com
4 1113 Computer_3 10.11.2.24 apx.moatads.com
5 - None 10.11.2.23 pixabay.com
6 - Computer_3 10.11.2.24 rb.adnxs.com
7 1111 None 10.11.2.22 dt.adsafeprotected.com
8 1111 Computer_1 10.11.2.22 ad.doubleclick.net
9 - None 10.11.2.23 s0.2mdn.net
10 1114 Computer_1 10.11.2.22 khms2.google.com
11 - None 10.11.2.22 photos.wavebid.com
12 1113 Computer_3 10.11.2.24 log.pinterest.com
期望输出:
df
sourceusername sourcehostname sourceaddress destinationhostname
0 1111 Computer_1 10.11.2.22 khms0.google.com
1 1111 Computer_1 10.11.2.22 photos.wavebid.com
2 1112 Computer_2 10.11.2.23 www.msn.com
3 1113 Computer_3 10.11.2.24 log.pinterest.com
4 1113 Computer_3 10.11.2.24 apx.moatads.com
5 1112 Computer_2 10.11.2.23 pixabay.com
6 1113 Computer_3 10.11.2.24 rb.adnxs.com
7 1111 Computer_1 10.11.2.22 dt.adsafeprotected.com
8 1111 Computer_1 10.11.2.22 ad.doubleclick.net
9 1112 Computer_2 10.11.2.23 s0.2mdn.net
10 1114 Computer_1 10.11.2.22 khms2.google.com
11 1114 Computer_1 10.11.2.22 photos.wavebid.com
12 1113 Computer_3 10.11.2.24 log.pinterest.com
如您所见,索引10处的用户“1114”是“计算机1”上的新用户。填补缺失数据的最佳方法是什么?你知道吗
下面给出了已发布的所需输出:
将
sourceaddress
追加到索引中,因为行号就像注释中讨论的时间序列交换
Index
级别,然后对MultiLevel
索引进行排序,以有效地显示按每个IP地址分组的事件的“时间顺序”现在
df
看起来像下面的2级多索引:用
np.nan
替换“-”和“None”,并使用前向填充nan值来有效地填充我们按IP地址分组的伪时间序列将
sourceaddress
从Index
移到数据中,以获得我们开始使用的格式:重新排列列
结果如下:
相关问题 更多 >
编程相关推荐