2

请原谅我的问题,我知道这是微不足道的,但由于某些原因,我没有做对。一本一本地阅读dataframes效率非常低,尤其是当你有很多人dataframes想阅读的时候。记住DRY - DO NOT REPEAT YOURSELF

所以这是我的方法:

files = ["company.csv", "house.csv", "taxfile.csv", "reliablity.csv", "creditloan.csv", "medicalfunds.csv"]

DataFrameName =  ["company_df", "house_df", "taxfile_df", "reliablity_df", "creditloan_df", "medicalfunds_df"]

for file in files:
    for df in DataFrameName:
        df = pd.read_csv(file)

这只是让我df成为其中之一frames,我不确定其中哪一个,但我猜是最后一个。如何read通过csv文件并将它们与数据框名称一起存储在DataFrameName

我的目标:

dataframes在工作空间中加载6 个DataFrameName

例如company_df保存来自的数据"company.csv"

4

4 回答 4

1

你可以设置

    DataFrameDic =  {"company":[], "house":[], "taxfile":[], "reliablity":[], "creditloan":[], "medicalfunds":[]}

    for key in DataFrameDic:
        DataFrameDic[key] = pd.read_csv(key+'.csv')

这应该返回一个包含数据框的字典。

于 2020-04-05T19:10:45.270 回答
1

像这样的东西:

files = [
    "company.csv",
    "house.csv",
    "taxfile.csv",
    "reliablity.csv",
    "creditloan.csv",
    "medicalfunds.csv",
]

DataFrameName = [
    "company_df",
    "house_df",
    "taxfile_df",
    "reliablity_df",
    "creditloan_df",
    "medicalfunds_df",
]

dfs = {}

for name, file in zip(DataFrameName, files):
    dfs[name] = pd.read_csv(file)

zip允许您同时迭代两个列表,因此您可以获得名称和文件名。

你最终会得到一个 DataFrames 的字典

于 2020-04-05T19:11:00.500 回答
0

字典是一种方式,因为您可以动态命名它们的内容。

names = ["company", "house", "taxfile", "reliablity", "creditloan", "medicalfunds"]
dataframes = {}
for name in names:
    dataframes[f"{name}_df"] = pd.read_csv(f"{name}.csv")

您有一个很好的命名约定这一事实使我们可以在需要时轻松地将_dfor.csv部分附加到名称中。

于 2020-04-05T19:14:38.290 回答
0

使用 pathlib,我们可以创建一个生成器表达式,然后创建一个字典,文件名作为名称,值作为数据框。

使用 pathlib,我们可以使用该.glob模块来获取目标路径中的所有 csv。

如果您使用的 Windows 使用原始字符串或转义斜杠,请将“\tmp\files”替换为文件的路径。

from pathlib import Path
trg_files = (f for f in Path("\tmp\files").glob("*.csv"))

dataframe_dict = {f"{file.stem}_df": pd.read_csv(file) for file in trg_files}

print(dataframe_dict.keys())

'company_df'

print(datarame_dict['company_df'])
于 2020-04-05T19:34:59.147 回答