عبدالصبور أحمد نشر 14 سبتمبر 2023 أرسل تقرير نشر 14 سبتمبر 2023 السلام عليكم ورحمة الله وبركاته عندي ملف اكسل وليكن 'C:/data/dtset.xlsx' به عمود column 1 يحتوي على جمل بداخلها أرقام على سبيل المثال لاحد الخلايا " جملة نصية 12345 جملة نصية 56213 جملة نصية 98756 جملة نصية " أريد استخراج أول 5 أرقام (12345) في عمود جديد، ثاني خمس أرقام (56213) في عمود جديد، ثالث خمس أرقام (98756) في عمود جديد حفظ التعديلات في ملف جديد وليكن 'C:/data/new.xlsx' 1 اقتباس
0 عبدالباسط ابراهيم نشر 14 سبتمبر 2023 أرسل تقرير نشر 14 سبتمبر 2023 يمكنك استخدام مكتبة `pandas` في Python لمعالجة ملفات Excel واستخراج البيانات المطلوبة. هنا هو مثال لكيفية القيام بذلك: import pandas as pd # قراءة ملف Excel df = pd.read_excel('C:/data/dtset.xlsx') # استخراج الأرقام من العمود الأول df['أول خمسة'] = df['column 1'].str.extract(r'(\d{5})', expand=False) df['ثاني خمسة'] = df['column 1'].str.extract(r'\d{5}(\d{5})', expand=False) df['ثالث خمسة'] = df['column 1'].str.extract(r'\d{10}(\d{5})', expand=False) # حفظ التعديلات في ملف Excel جديد df.to_excel('C:/data/new.xlsx', index=False) في هذا المثال، نستخدم `read_excel` لقراءة الملف 'C:/data/dtset.xlsx' ونخزنه في DataFrame يسمى `df`. ثم نستخدم `str.extract` لاستخراج الأرقام من العمود الأول باستخدام تعبيرات منتظمة. تم إنشاء ثلاثة أعمدة جديدة في DataFrame (`أول خمسة`، `ثاني خمسة`، و`ثالث خمسة`) وتم ملؤها بالأرقام المستخرجة. أخيرًا، يتم استخدام `to_excel` لحفظ التعديلات في ملف Excel جديد 'C:/data/new.xlsx' بدون تضمين الفهرس. 1 اقتباس
0 Mustafa Suleiman نشر 14 سبتمبر 2023 أرسل تقرير نشر 14 سبتمبر 2023 تستطيع ذلك من خلال الإعتماد على مكتبة مثل openpyxl وإليك مثال: import openpyxl # افتح ملف Excel wb = openpyxl.load_workbook("C:/data/dtset.xlsx") # احصل على ورقة العمل الأولى ws = wb.active # احصل على العمود الأول col1 = ws["A"] # استخراج أول 5 أرقام من كل خلية for cell in col1: # تأكد من أن الخلية تحتوي على أرقام فقط if cell.value.isnumeric(): # استخراج أول 5 أرقام first_five = cell.value[:5] # اطبع النتيجة print(first_five) # احفظ التغييرات في ملف جديد wb.save("C:/data/new.xlsx") والكود يعمل على إنشاء ملف Excel جديد يحتوي على ثلاثة أعمدة جديدة: العمود الأول: يحتوي على أول 5 أرقام من كل خلية في العمود الأول من الملف الأصلي. العمود الثاني: يحتوي على الأرقام من 5 إلى 10 من كل خلية في العمود الأول من الملف الأصلي. العمود الثالث: يحتوي على آخر 5 أرقام من كل خلية في العمود الأول من الملف الأصلي. وإليك شرح الكود: import openpyxl: يعمل على استيراد مكتبة openpyxl، والتي ستستخدمها لفتح ومعالجة ملف Excel. wb = openpyxl.load_workbook("C:/data/dtset.xlsx"): فتح ملف Excel الموجود في المسار المحدد. ws = wb.active: الحصول على ورقة العمل النشطة في الملف المفتوح. col1 = ws["A"]: الحصول على العمود الأول في ورقة العمل النشطة. for cell in col1: إنشاء حلقة for تتكرر على كل خلية في العمود الأول. if cell.value.isnumeric():: عبارة الشرطية للتحقق مما إذا كانت الخلية تحتوي على أرقام فقط. first_five = cell.value[:5]: استخراج أول 5 أرقام من الخلية. print(first_five): طباعة النتيجة. wb.save("C:/data/new.xlsx"): حفظ التغييرات في ملف جديد. 1 اقتباس
0 عبدالصبور أحمد نشر 14 سبتمبر 2023 الكاتب أرسل تقرير نشر 14 سبتمبر 2023 بتاريخ 4 ساعة قال عبدالباسط ابراهيم: يمكنك استخدام مكتبة `pandas` في Python لمعالجة ملفات Excel واستخراج البيانات المطلوبة. هنا هو مثال لكيفية القيام بذلك: import pandas as pd # قراءة ملف Excel df = pd.read_excel('C:/data/dtset.xlsx') # استخراج الأرقام من العمود الأول df['أول خمسة'] = df['column 1'].str.extract(r'(\d{5})', expand=False) df['ثاني خمسة'] = df['column 1'].str.extract(r'\d{5}(\d{5})', expand=False) df['ثالث خمسة'] = df['column 1'].str.extract(r'\d{10}(\d{5})', expand=False) # حفظ التعديلات في ملف Excel جديد df.to_excel('C:/data/new.xlsx', index=False) في هذا المثال، نستخدم `read_excel` لقراءة الملف 'C:/data/dtset.xlsx' ونخزنه في DataFrame يسمى `df`. ثم نستخدم `str.extract` لاستخراج الأرقام من العمود الأول باستخدام تعبيرات منتظمة. تم إنشاء ثلاثة أعمدة جديدة في DataFrame (`أول خمسة`، `ثاني خمسة`، و`ثالث خمسة`) وتم ملؤها بالأرقام المستخرجة. أخيرًا، يتم استخدام `to_excel` لحفظ التعديلات في ملف Excel جديد 'C:/data/new.xlsx' بدون تضمين الفهرس. تحياتي لك هذا الكود يعمل فعلا على استخراج أول 5 أرقام فقط ثم يعد 5 حروف ويستخرج الأرقام ثم يعد 10 حروف ويستخرج الأرقان وهكذا ولكن بعد محاولات كثيرة وجدت الكود الصحيح الذي يعمل بغض النظر عن عدد الكلمات بين كل مجموعة من الأرقام import pandas as pd import re # Open the Excel file excel_file = 'F:/data_set_extract_digits.xlsx' df = pd.read_excel(excel_file, sheet_name='sheet1') # Extract consecutive groups of 5 digits in new columns df['First Five Digits'] = df['column1'].apply(lambda x: re.findall(r'\d{5}', str(x))[0] if re.findall(r'\d{5}', str(x)) else '') df['Second Five Digits'] = df['column1'].apply(lambda x: re.findall(r'\d{5}', str(x))[1] if len(re.findall(r'\d{5}', str(x))) > 1 else '') df['Third Five Digits'] = df['column1'].apply(lambda x: re.findall(r'\d{5}', str(x))[2] if len(re.findall(r'\d{5}', str(x))) > 2 else '') # Save the extracted data as a new Excel file output_file = 'F:/result.xlsx' df.to_excel(output_file, index=False) print("Extracted data saved successfully!") مرفق ملف للتجربة data_set_extract_digits.xlsx اقتباس
السؤال
عبدالصبور أحمد
السلام عليكم ورحمة الله وبركاته
عندي ملف اكسل وليكن 'C:/data/dtset.xlsx' به عمود column 1 يحتوي على جمل بداخلها أرقام
على سبيل المثال لاحد الخلايا " جملة نصية 12345 جملة نصية 56213 جملة نصية 98756 جملة نصية "
أريد استخراج أول 5 أرقام (12345) في عمود جديد، ثاني خمس أرقام (56213) في عمود جديد، ثالث خمس أرقام (98756) في عمود جديد
حفظ التعديلات في ملف جديد وليكن 'C:/data/new.xlsx'
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.