【发布时间】:2016-10-27 04:18:12
【问题描述】:
我正在创建一个程序,根据指示计划/报告类型的名称限定符来提取从 2001 年第一季度到 2016 年第一季度的一系列文本文件。限定符被称为键(因为没有更好的名字)
keys=[' RI ','RCD','RCF','RCG','RCH','RCL','RCO','RCRII']
给定路径 C:\files,我创建一个包含所有符合条件的文本文件的字典
files=[]
for k in keys:
for i in os.listdir(path):
if os.path.isfile(os.path.join(path,i)) and k in i:
files.append(i)
然后我创建一个字典
df_dict={file[:-4].replace(" ","_"):pd.read_table(path+file,header=[0,1],index_col=0,error_bad_lines=False,dtype={'IDRSSD':object}, low_memory=False) for file in files}
示例字典如下所示: {(Schedule_RI_2001Q1:Col1 Col2 ColN), (Schedule_RCO_2001Q1:Col1 Col2 ColN), (Schedule_RI_2005Q2:Col1 Col2 ColN) }
在键值排列中。
我需要根据报告类型从主词典创建词典。我想出了这个脚本(我知道它是业余的):
for key in keys:
for k in df_dict.keys():
for v in df_dict.values():
if key in k:
key.strip={k:v}
无论使用 key.strip 还是 key.strip(),我都会收到一条错误消息,分别是“'str' 对象属性 'strip' 是只读的”或“无法分配给函数调用”。有没有更好的方法来完成这项任务。我创建聚合字典的原因是为了进行一些数据格式化等。我们将不胜感激协助分解字典。
【问题讨论】:
-
你到底想用
key.strip = { k : v }做什么。 key只是keys中的一个值,为什么还要重新初始化呢? -
我试图使用键列表中的键元素创建字典。键列表中的 ' RI ' 元素有空格,所以我使用 strip 来删除前导和尾随空格。我希望 RI 成为一本字典,其中包含以 RI 为名的所有日程安排/报告。
-
这正是我的猜测。我的回答应该很适合你。
标签: python dictionary pandas iteration