首页 > 解决方案 > 尝试获取字典以将项目添加为列表被迭代,但不起作用。有没有办法来解决这个问题?

问题描述

我正在尝试制作一个数据框字典,因此我可以将它们绘制到图表上。但是,当我打印(数据)时,它只为列表 filter_data 中的一个文件提供 df。

我试图在 for 循环中打印,它给出了我想要的值,文件字典作为键,相应的数据框作为值。我不知道为什么这在循环之外不起作用,而是在循环内部。任何帮助是极大的赞赏。谢谢!

def process_data():
    data = {}
    for i in filter_data():
        fname = i.split('/')[-1]
        #print(fname)
        figname = fname.split('.')[-2]
        molname = figname.split('_')[-5]
        molname = str(molname[1:])
        colname2 =' & '.join(figname.split('_')[-1:]) if 'only' not in figname else '_'.join(figname.split('_')[-2:])
        colname = '_'.join(figname.split('_')[-2:])
        repname = figname.split('_')[-4]
        with open('{}'.format(i),'r') as f:
            x, y = [], []
            for line in f:
                if line.startswith('@'): continue
                line = line.split()

                 if len(line) == 2:
                     x.append(line[0])
                     y.append(line[1])

        x = [float(l)/1000.0 for l in x]
        y = [float(l) for l in y]
        df = pd.DataFrame({'RMSD (nm)': x, 'Time (ps)': y})
        data = {'{m}_{b}_{f}'.format(b = repname, m = molname, f = colname) : df}
    #print(df.head())
    print(data)

#only gives one value
process_data()

标签: python-3.xloopsdictionary

解决方案


推荐阅读