【问题标题】:How to store data collected from different sources to create dataframe?如何存储从不同来源收集的数据以创建数据框?
【发布时间】:2021-09-10 10:59:38
【问题描述】:

我正在为分类任务创建一个数据框。

由于我的数据来自各种不同的来源,我想知道逐步收集数据的最佳方法是什么。

我从一个文件文件夹开始,想要存储它们的路径和文件名并添加新数据,例如它们的标签,这些数据是从保存在其他地方的 txt 文件中获取的。

但是最好的方法是什么?

我在想一个像字典这样的列表

data = [{"path": path_to_file_1, "filename" : filename_1, "label" : label_1},
    {"path": path_to_file_2, "filename" : filename_2, "label" : label_2}, 
    {"path": path_to_file_3, "filename" : filename_3, "label" : label_3}]

等等。

我的想法是遍历我的文件夹,通过我编写的不同函数收集信息并为我的每个文件创建一个字典,如下所示:

for filename in folder:
   dict_filename={} 
   label=get_label(filename)
   path=get_path(filename)
   dict_filename["label"]=label
   dict_filename["path"]=path
   dict_filename["filename"]=filename
   data.append(dict_filename)

dict_filename 是一个字典,只包含我目前正在查看的文件的信息。

所以最后我会得到一个列表,其中包含我为所有文件创建的所有字典。

我的问题是:

  1. 这是一种有意义的方式,还是有其他更好/更容易/更顺畅的方式?
  2. 如果可行,我该如何在每个循环中创建一个新字典(我想我需要为每个字典使用不同的名称,这样我就不会在每个循环中覆盖我的第一个字典)?

这可能是一些非常基本的东西,因为我是 Python 新手,但我很感谢所有可以帮助我的人!

提前致谢!

【问题讨论】:

  • 每个文件的标签代表什么?用字典收集数据后你的目标是什么?
  • 我想使用 pandas 创建一个数据框,并认为字典列表在进行一些研究后会是一个很好的方法 (pandas.pydata.org/docs/reference/api/pandas.DataFrame.html) 但我对不同的解决方案持开放态度如果他们工作得更好!标签告诉我们文件中的内容。最后我想训练一个可以告诉我们文件内容的CNN

标签: python dataframe dictionary


【解决方案1】:

字典是这本的方法。但是,根据您的数据结构,可以消除很多冗余。

例如,您可以使用一个字典以这种方式存储所有数据帧:

dfs[filename] = pd.DataFrame(path).rename(label)

这基本上使以后访问信息变得更加容易。此外,您可以使用:

df = pd.concat(dfs, axis=1)

最后合并所有数据框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2020-03-29
    • 2022-07-12
    • 2021-08-01
    相关资源
    最近更新 更多