【发布时间】:2016-04-28 05:55:32
【问题描述】:
我有一个包含许多 csv 文件的目录,这些文件已加载到数据帧字典中
因此,只需 3 个示例小 csv 文件来说明
import os
import csv
import pandas as pd
#create 3 small csv files for test purposes
os.chdir('c:/test')
with open('dat1990.csv','w',newline='') as fp:
a=csv.writer(fp,delimiter=',')
data = [['Stock','Sales','Year'],
['100','24','1990'],
['120','33','1990'],
['23','5','1990']]
a.writerows(data)
with open('dat1991.csv','w',newline='') as fp:
a=csv.writer(fp,delimiter=',')
data = [['Stock','Sales','Year'],
['400','35','1991'],
['450','55','1991'],
['34','6','1991']]
a.writerows(data)
with open('other1991.csv','w',newline='') as fp:
a=csv.writer(fp,delimiter=',')
data = [['Stock','Sales','Year'],
['500','56','1991'],
['600','44','1991'],
['56','55','1991']]
a.writerows(data)
创建用于将 csv 文件处理为数据帧的字典
dfcsv_dict = {'dat1990': 'dat1990.csv', 'dat1991': 'dat1991.csv',
'other1991': 'other1991.csv'}
创建一个简单的导入函数,用于将 csv 导入 pandas
def myimport(csvfile):
return pd.read_csv(csvfile)
遍历字典,将所有 csv 文件导入 pandas 数据帧
df_dict = {}
for k, v in dfcsv_dict.items():
df_dict[k] = myimport(v)
鉴于我现在在统一字典对象中可能有数千个数据帧,我该如何选择一些并将它们从字典中“提取”出来?
例如,我将如何仅提取嵌套在字典中的这三个数据帧中的两个,类似于
dat1990 = df_dict['dat1990']
dat1991 = df_dict['dat1991']
但不使用文字赋值。也许是字典上的某种循环结构,希望有一种基于字典键中的字符串序列选择子组的方法: 例如,所有名为 dat 或 1991 等的数据框
我不想要另一个“子字典”,但想将它们提取为命名为“独立”数据帧,如上面的代码所示。
我正在使用 python 3.5。
【问题讨论】:
-
您可以遍历密钥
df_dict.keys()将返回您的密钥 -
感谢您的回复。
-
for k in df_dict.keys(): j = df_dict[k] 会给我一个数据帧“j”,我如何获得数据帧“dat1991”、“dat1990”等。谢谢跨度>
-
另一个用户问了类似的问题,答案是here
标签: dictionary pandas