【发布时间】:2019-07-27 02:51:51
【问题描述】:
试图捕捉多年每日更新的二维表格。我可以将它们下载到数据框字典中。尝试将其写入 CSV 文件,因此我不必每次都下载它。
import csv
import pandas as pd
def saver(dictex):
for key, val in dictex.items():
val.to_csv("data_{}.csv".format(str(key)))
with open("keys.txt", "w") as f: #saving keys to file
f.write(str(list(dictex.keys()))
def loader():
"""Reading data from keys"""
with open("keys.txt", "r") as f:
keys = eval(f.read())
dictex = {}
for key in keys:
dictex[key] = pd.read_csv("data_{}.csv".format(str(key)))
return dictex
dictex = loader()
它可以将所有的键和值保存在不同的文件中。我的下一步是将所有数据放在一个文件中。
我尝试了以下方法,但它似乎只适用于一维字典。因为它无法读取以下错误消息。
"ValueError: 字典更新序列元素 #1 的长度为 0;需要 2"
with open('datadict.csv', 'w', encoding='utf-8-sig') as csv_file:
writer = csv.writer(csv_file)
for key, value in data.items():
writer.writerow([key, value])
with open('datadict.csv', encoding='utf-8-sig') as csv_file:
reader = csv.reader(csv_file)
mydict = dict(reader)
这是一个类似于我正在使用的手工制作的数据集。我想将 dictdf 写入 csv 并以相同的结构读回。
import pandas as pd
import numpy as np
dates = pd.date_range('1/1/2000', periods=8)
df1 = pd.DataFrame(np.random.randn(8, 4),
index=dates, columns=['A', 'B', 'C', 'D'])
dates2 = pd.date_range('1/1/2000', periods=8)
df2 = pd.DataFrame(np.random.randn(8, 4),
index=dates, columns=['A', 'B', 'C', 'D'])
dictdf={}
dictdf['xxset']=df1
dictdf['yyset']=df2
感谢您的关注。
【问题讨论】:
-
你希望所有的 csv 都加入到 1 个大数据框中吗?所有 csv 的结构(# 和列名)是否相同?
-
不,不是大数据框,如果可能的话,我想将它们放入大数据框字典中。它们的名称和列是相同的。在我写入数据之前,它在 data[date] 中看起来不错。
-
您的代码中的
data[date]是什么?我没有看到任何data对象。 -
该值是每天使用日期作为键的 957x16 数据帧。我正在尝试使用两天的数据来测试它。
-
那么
data与上面代码中的dictex变量相同吗?
标签: python csv dataframe dictionary