Элегантный способ чтения нескольких pandas фреймов данных и присвоения им имен фреймов данных в Python с использованием Pandas - PullRequest
2 голосов
/ 05 апреля 2020

Извините, мой вопрос, я знаю, что это тривиально, но по некоторым причинам я не понимаю его правильно. Чтение 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

Моя цель:

Иметь 6 dataframes загружен в рабочее пространство с интервалом в DataFrameName

Например, company_df содержит данные из "company.csv"

Ответы [ 4 ]

1 голос
/ 05 апреля 2020

Примерно так:

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

1 голос
/ 05 апреля 2020

Вы можете настроить

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

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

Это должно вернуть словарь, содержащий кадры данных.

0 голосов
/ 05 апреля 2020

используя pathlib, мы можем создать выражение генератора, а затем создать словарь с именем файла в качестве имени и значением в качестве фрейма данных.

с помощью pathlib мы можем использовать модуль .glob для захвата всех CSV-файлов. в целевом пути.

замените "\ tmp \ files" путем к вашим файлам, если вы используете windows, используйте необработанную строку или избегайте косой черты.

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'])
0 голосов
/ 05 апреля 2020

Словарь - это путь, так как вы можете назвать его содержимое динамически.

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

Тот факт, что у вас есть хорошее соглашение об именах, позволяет нам легко добавлять часть _df или .csv к имени при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...