• 0

تحميل أكثر من ملف csv ودمجهم سوياً في pandas

لدي عدة ملفات على شكل csv وأريد تحميلهم في pandas على هيئة dataframes بحيث يتم دمجهم سويا في dataframe واحدة كبيرة، حاولت إستخدام الكود التالي لكنه لم يفلح:

import glob
import pandas as pd

# تحميل الملفات
path =r'C:\DRO\DCL_rawdata_files'
filenames = glob.glob(path + "/*.csv")

dfs = []
for filename in filenames:
    dfs.append(pd.read_csv(filename))

# جمع الملفات في ملف واحد
big_frame = pd.concat(dfs, ignore_index=True)

كيف يمكنني فعل هذا؟

تمّ تعديل بواسطة Mohamed Elnemr
2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكنك القيام بذلك بالشكل التالي من خلال استخدام الدالة map والدالة concat التي تقوم بعملية الربط بين الجداول:

import glob
import os
import pandas as pd
df = pd.concat(map(pd.read_csv, glob.glob(os.path.join('', "my_files*.csv"))))

ومن الأفضل تحديد المسار من خلال os.path.join. أو بالشكل التالي بدون استخدام map:

path = r'C:\DRO\DCL_rawdata_files'   
# قراءة كل الملفات
all_files = glob.glob(os.path.join(path, "*.csv")) 
#Dataframes يحوي كل ال tuple إنشاء 
df_from_each_file = (pd.read_csv(f) for f in all_files) 
#concat الآن ربطهما من خلال الدالة 
concatenated_df   = pd.concat(df_from_each_file, ignore_index=True)

كما يمكنك استخدام Dask حيث يمكنها قراءة الداتافريم من عدة ملفات:

import dask.dataframe as read
df = read.read_csv('data*.csv')

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

الكود الذي قمت بكتابته هو صحيح الا حد كبير الا انه ينقصه جزء صغير، يمكنك النظر في الكود التالي:

import pandas as pd
import glob

path = r'C:\DRO\DCL_rawdata_files' # use your path
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    li.append(df)

frame = pd.concat(li, axis=0, ignore_index=True)

لاحظ أنني قمت بوضع header = 0 وذلك لجعل أول صف في ملفات ال csv هو عنوان العمود.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن