python-3.x - 尝试获取字典以将项目添加为列表被迭代,但不起作用。有没有办法来解决这个问题?
问题描述
我正在尝试制作一个数据框字典,因此我可以将它们绘制到图表上。但是,当我打印(数据)时,它只为列表 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()
解决方案
推荐阅读
- android - 如何使用 Android 将文本设置为 Spinner
- unity3d - Unity & Leap Motion - 如何获取实时手部数据?
- c - 如何在控制台应用程序中设置 WM_KEYDOWN 消息拦截器?
- django - 如何在 Django ORM 中分组和聚合条件
- html - 使用 Flex 尝试根据图像获取框
- javascript - 如何在服务器端 Javascript (OrientDB Studio) 中获取 OConcurrentModificationException
- reporting-services - SSRS 多值参数 - 空白值重置参数
- gradle - Gradle Wrapper - 如何为本地和 CI 构建使用不同的 distributionUrls?
- html - 如何正确旋转表格单元格内的文本
- c++ - 区分jsoncpp中的int和uint类型