【问题标题】:Export JSON results to CSV using Pandas package使用 Pandas 包将 JSON 结果导出为 CSV
【发布时间】:2020-11-05 03:37:07
【问题描述】:

我正在尝试修改以下代码(我是python的新手,所以尝试一步一步教我)

import requests, json
import pandas as pd

class AjaxScraper():
    results = []

    def fetch(self, url):
        return requests.get(url)
    
    def parse(self, content):
        self.results = content['data']
                
        for entry in self.results:
            del entry['_id']
    
    def to_csv(self):
        df = pd.DataFrame(self.results)
        pd.to_csv('Table.csv', sep=',', encoding='utf-8',index = False)
    
    def start_me(self):
        response = self.fetch('https://scrapingkungfu.herokuapp.com/api?_=1576384789999')
        self.parse(response.json())
        self.to_csv()

if __name__ == '__main__':
    scraper = AjaxScraper()
    scraper.start_me()

我遇到了类似的错误

  File "demo.py", line 24, in start_me
    self.to_csv()
  File "demo.py", line 19, in to_csv
    pd.to_csv('Table.csv', sep=',', encoding='utf-8',index = False)
AttributeError: module 'pandas' has no attribute 'to_csv'

我想知道为什么会出现这个错误,虽然我在 pandas 包中看到了很多带有to_csv 的代码..!!

** 这是一个简单的数据框,我需要学习如何使用列的索引对列进行重新排序

import pandas as pd

name_dict = {
            'Name': ['a','b','c','d'],
            'Score': [90,80,95,20]
          }

df = pd.DataFrame(name_dict)

print (df)

【问题讨论】:

  • 我在使用这个而不是df.to_csv('Table.csv', encoding='utf-8') 发布问题后发现了它
  • 我需要删除我的答案吗
  • 不,先生。我会将其标记为已回答。问题:是否可以重新排序数据框的列或删除特定列..?你能用简单的例子指导我吗?
  • 啊亚瑟兄弟。我们可以重新排序数据框

标签: python json pandas screen-scraping


【解决方案1】:

to_csv 是 DataFrame 对象的方法,而不是 pandas 模块的方法。 您需要创建一个数据框

使用您的示例重新排序数据框

import pandas as pd

name_dict = {
            'Name': ['a','b','c','d'],
            'Score': [90,80,95,20]
          }

df = pd.DataFrame(name_dict)

print (df)

  1. 解决方案是按照我们想要的顺序创建一个新的数据框
df = df[['Score', 'Name']]

【讨论】:

  • 非常感谢。在看到您的出色回答之前,我已经认识到这一点。
  • 非常感谢。是否有机会使用列索引进行排序。我的意思是使用所需列数的数组?
  • 我已经搜索并找到了一种使用像print(df[df.columns[[1,0]]]) 这样的索引的方法。非常感谢您的支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 2020-09-23
  • 2019-07-24
  • 1970-01-01
  • 2020-12-04
相关资源
最近更新 更多