首页 > 解决方案 > 将指定目录中的所有 .csv 文件导入单独的数组

问题描述

我正在尝试导入目录中的所有 .csv 文件。我想将它们存储在每个文件的数组中(例如命名为 file_name)。我尝试按照线程中建议的代码将目录中的所有 csv 文件导入为 pandas dfs 并将它们命名为 csv 文件名

import pandas as pd
import glob
import os

path = "E:\\9sem\\INO\\Dane\\input\\"
all_files = glob.glob(os.path.join(path, "*.csv")) #make list of paths

for file in all_files:
    # Getting the file name without extension
    file_name = os.path.splitext(os.path.basename(file))[0]
    # Reading the file content to create a DataFrame
    dfn = pd.read_csv(file)
    # Setting the file name (without extension) as the index name
    dfn.index.name = file_name

我被困住了。我将数据导入单个 DataFrame 但我不知道如何将它转换为单独的 numpy 数组。

感谢您的任何建议。

最好的问候, 麦克斯

标签: pythonpandasdataframeimport

解决方案


您的代码总是会用下一个 csv 的数据覆盖数据帧,对吧?

所以要么你可以pandas.concat用来制作一个大数据框,要么你可以将数据存储在字典中。如果要将其存储在字典中,可以像这样更改代码:

df_dict= dict()
for file in all_files:
    # Getting the file name without extension
    file_name = os.path.splitext(os.path.basename(file))[0]
    # Reading the file content to create a DataFrame
    df_dict[file_name]= pd.read_csv(file)
    # Setting the file name (without extension) as the index name
    df_dict[file_name].index.name = file_name

然后你可以通过df_dict[base_name]. base_name数据框的源文件的名称在哪里。


推荐阅读