开发者社区 问答 正文

从数据框获取数据并将其传递到新的空数据框

我有一个从csv文件读取的DataFrame。我使用loc函数从第一个csv文件成功获取数据。我的问题是我无法添加从第一个csv文件获得的数据以添加到新的DataFrame中。

import csv
import socket
import pandas as pd
import ipaddress
import numpy as np


print("Reading data from original csv...")
originaldata = pd.read_csv("input.csv")

sip_data = originaldata.sip

dip_data = originaldata.dip

print("Reading from asn csv...")
asndata = pd.read_csv("asn_ip(4).csv", delimiter = ';')

asn_data = asndata.IP

print(asn_data.head())

newdf = pd.DataFrame()

print("Processing data...")
for sip in sip_data:
    print("In for loop for sip in sip_data")
    find = False
    index = False
    for IP in asn_data:
        print("In for loop for IP in asn_data")

        IP_u = unicode(IP)
        print("IP_u = " + IP_u)
        print("IP = " + IP)
        sip_u = unicode(sip)
        print("sip_u = " + sip_u)

        if ipaddress.ip_address(sip_u) in ipaddress.ip_network(IP_u):
            print("Address found")
            info = asndata.loc[asndata['IP'] == IP_u].head(1)
            print(info)

            newdata = pd.DataFrame({"IP": IP}, index=[0])
            newdf.append(newdata)

        else:
            print("Not found")

运行此代码后,数据框仍然为空。

Empty DataFrame
Columns: []
Index: []

第一个df的列名称为sip,端口和日期时间。第二个df的列名称为IP,ASN和Source。

展开
收起
祖安文状元 2020-01-05 18:54:06 452 分享 版权
1 条回答
写回答
取消 提交回答
  • append不会执行适当的操作。您想要类似的东西:

    newdf = newdf.append(newdata)
    
    2020-01-05 18:54:20
    赞同 展开评论
问答分类:
问答地址: