当数据集有“”和“无”单元格时,填充缺少的数据

2024-06-26 00:03:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个数据集,该数据集的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”上的新用户。填补缺失数据的最佳方法是什么?你知道吗


Tags: 数据用户ipcomnonelognet计算机
1条回答
网友
1楼 · 发布于 2024-06-26 00:03:43

下面给出了已发布的所需输出:

sourceaddress追加到索引中,因为行号就像注释中讨论的时间序列

df = df.set_index('sourceaddress', append=True)

交换Index级别,然后对MultiLevel索引进行排序,以有效地显示按每个IP地址分组的事件的“时间顺序”

df = df.swaplevel().sort_index()

现在df看起来像下面的2级多索引:

                 sourceusername sourcehostname     destinationhostname
sourceaddress                                                         
10.11.2.22    0            1111     Computer_1        khms0.google.com
              1            1111     Computer_1      photos.wavebid.com
              7            1111           None  dt.adsafeprotected.com
              8            1111     Computer_1      ad.doubleclick.net
              10           1114     Computer_1        khms2.google.com
              11              -           None      photos.wavebid.com
10.11.2.23    2            1112     Computer_2             www.msn.com
              5               -           None             pixabay.com
              9               -           None             s0.2mdn.net
10.11.2.24    3            1113     Computer_3       log.pinterest.com
              4            1113     Computer_3         apx.moatads.com
              6               -     Computer_3            rb.adnxs.com
              12           1113     Computer_3       log.pinterest.com

np.nan替换“-”和“None”,并使用前向填充nan值来有效地填充我们按IP地址分组的伪时间序列

df = df.replace('-', np.nan).replace('None', np.nan).ffill()

sourceaddressIndex移到数据中,以获得我们开始使用的格式:

df = df.reset_index(level='sourceaddress').sort_index()

重新排列列

df = df.reindex(columns=['sourceusername', 'sourcehostname', 'sourceaddress', 'destinationhostname'])

结果如下:

   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

相关问题 更多 >