首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >df.csv没有保存实际的数据帧

df.csv没有保存实际的数据帧
EN

Stack Overflow用户
提问于 2021-10-22 12:55:24
回答 1查看 36关注 0票数 0

代码运行良好,并打印出所有需要的值,但当我尝试将df保存为csv时,所有行都是相同的。

a.csv文件内容

A.com

AMD.com

AMD.com

AOL.com

AOL.com

AWS.com

AWS.com

3ammagazine.com

3dmail.com

3email.com

3xl.net

444.net

4email.com

4email.net

4mg.com

4newyork.com

whdskcisail.com

wrestlingpages.com

wrexham.net

代码语言:javascript
复制
import whois
import matplotlib.pyplot as plt
import numpy as np  
import pandas as pd  
import socket
import os
import csv 
import datetime
import time
import requests
from ipwhois import IPWhois
from urllib import request
from ipwhois.utils import get_countries
import tldextract
from ipwhois.utils import get_countries
countries = get_countries(is_legacy_xml=True)
from ipwhois.experimental import bulk_lookup_rdap
from ipwhois.hr import (HR_ASN, HR_ASN_ORIGIN, HR_RDAP_COMMON, HR_RDAP, HR_WHOIS, HR_WHOIS_NIR)
countries = get_countries(is_legacy_xml=True)
import ipaddress

df = pd.read_csv('a.csv', nrows=100)

#TimeOut Setting
s = socket.socket()
s.settimeout(10)

#Date Processing Function

def check_date_type(d):
    if type(d) is datetime.datetime:
        return d
    if type(d) is list:
        return d[0]
for index,row in df.iterrows():
  try:
      DN = df.iloc[index]['Domains']
      ip = socket.gethostbyname(DN)
      ipwhois = IPWhois(ip).lookup_whois()
      print(DN)
      print(ip)
      print(ipwhois)
      df['IPcity'][index] = ipwhois['nets'][0]['city']
      df['ASNumber'][index] = ipwhois['asn']
      df['NetAddr'][index] = ipwhois['nets'][0]['address']
      df['NetCity'][index] = ipwhois['city']
      df['NetPostCode'][index] = ipwhois['nets'][0]['postal_code']
      df.to_csv('a1.csv', index=False)
  except Exception as e:
    print(e) 
    df['e'] = e # want to save the errors in a differet column
    df.to_csv('a2.csv', index=False)
EN

回答 1

Stack Overflow用户

发布于 2021-10-22 13:00:07

这是因为您在循环的每次迭代中都覆盖了.csv文件。如果你把df.to_csv()移到你的循环之外,你会得到你想要的数据帧:

代码语言:javascript
复制
...
for index,row in df.iterrows():
  try:
      DN = df.iloc[index]['Domains']
      ip = socket.gethostbyname(DN)
      ipwhois = IPWhois(ip).lookup_whois()
      print(DN)
      print(ip)
      print(ipwhois)
      df['IPcity'][index] = ipwhois['nets'][0]['city']
      df['ASNumber'][index] = ipwhois['asn']
      df['NetAddr'][index] = ipwhois['nets'][0]['address']
      df['NetCity'][index] = ipwhois['city']
      df['NetPostCode'][index] = ipwhois['nets'][0]['postal_code']

  except Exception as e:
    print(e) 
    df['e'] = e # want to save the errors in a differet column
df.to_csv('a1.csv', index=False)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69677269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档