为了账号安全,请及时绑定邮箱和手机立即绑定

将数据框列表添加到字典

将数据框列表添加到字典

Cats萌萌 2022-10-18 17:32:56
我正在尝试将 7 个数据框的列表添加到字典中,其中键是数据框名称,值是数据框本身,如下所示:    {"Clock 1": clock1_df, "Clock 2": clock2_df, ...}我用数据框名称创建了一个列表,然后尝试将这两个列表放入字典中,但它只将每个列表的最后一个元素添加到字典中:    adict = dict(zip(f_names_list, dataframes))     或者    bdict = {k:v for k, v in zip(f_names_list, dataframes)}     问:为什么dict中只有每个列表的最后一个元素?我是否因为试图将数据框列表添加到字典而生气?两个列表都有唯一的值。我像这样制作数据框列表:path = 'dat/'f = []for (dirpath, dirnames, filenames) in walk(path):    f.extend(filenames)    breakdataframes = []for filename in filenames:  dataframes.append(pd.read_csv(path+filename, sep=" ", header = None))  for df in dataframes:    df.name = filename[:-10]    df.columns = ['Time', 'Measurement']  
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

我认为你的问题在这里:


for df in dataframes:

    df.name = filename[:-10]

    df.columns = ['Time', 'Measurement']  

这是第一个 for 所以你正在修改所有数据帧,到最后,所有数据帧都将具有相同的名称数据,请记住,当你定义df这个变量时包含对列表中项目的引用,所以你一切在列表中进行了修改。


我不知道数据的样子,但也许这就是你要找的:


dataframes = []

for filename in filenames:

    dataframes.append(pd.read_csv(path+filename, sep=" ", header = None))

    df = dataframes[-1]

    df.name = filename[:-10]

    df.columns = ['Time', 'Measurement']

使用 zip 的两种方法都是正确的。


查看完整回答
反对 回复 2022-10-18
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

你可以这样做:


d = {}

for filename in filenames:

    d[filename] = pd.read_csv(path+filename, sep=" ", header = None)

在这里,键将具有数据框的名称(即文件名),值是实际的数据框。


您可以像这样从 dict 中读取:


for key, val in d.items():

    print(key,val)


查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号