لحل هذه المشكلة، يمكنك استخدام لغة البرمجة Python ومكتبة pandas لمعالجة البيانات. يمكنك استخدام الكود التالي:
pythonimport pandas as pd
# البيانات الأولى
data1 = {
'col1': ['O75663', 'O95400', 'O95433', '', '', ''],
'col2': ['O95456', 'O95670', '', 'O95456', 'O95670', ''],
'col3': ['O75663', 'O95400', 'O95433', 'O95456', '', ''],
'col4': ['', 'O95670', 'O95801', 'P00352', '', '']
}
df1 = pd.DataFrame(data1)
# البيانات الثانية
data2 = {
'strings': ['O75663', 'O95400', 'O95433', 'O95456', 'O95670', 'O95801', 'P00352', 'P00492']
}
df2 = pd.DataFrame(data2)
# تحويل القيم الفارغة إلى NaN
df1 = df1.replace('', pd.NA)
# تحويل كل قيمة في df1 إلى مجموعة متعددة (set) تحتوي على العمود الذي يحتوي عليها
cols = df1.applymap(lambda x: {col for col in df1.columns if x in df1[col]})
# الحلقة التي تبحث عن القيم في df2 في كل مجموعة من العمود في df1
matches = df2['strings'].apply(lambda x: ','.join(str(idx) for idx, col_set in cols.items() if x in col_set.values))
# إنشاء إطار بيانات جديد للنتائج
result = pd.DataFrame({
'strings': df2['strings'],
'column_ids': matches.replace('', 'NA')
})
print(result)
هذا الكود يعمل على إنشاء إطار بيانات جديد (result
) يحتوي على عمودين، الأول للسلاسل من البيانات الثانية والثاني للمؤشرات (index) للعمود الذي يتواجد فيه كل سلسلة من البيانات الثانية في البيانات الأولى.
-
إنشاء أزرار مخصصة في Visual Studio16/03/2024
-
أهمية تعلم البرمجة في العصر الرقمي25/01/2024
-
حساب عدد الأرقام باستخدام الباقي04/04/2024
المزيد من المعلومات
بالطبع، يمكنني توضيح المزيد من المعلومات حول الكود السابق:
-
يتم تمثيل البيانات الأولى في DataFrame
df1
، حيث يحتوي كل عمود على سلسلة من القيم، ويتم تمثيل البيانات الثانية في DataFramedf2
، حيث يحتوي عمود واحد على سلسلة من القيم. -
يتم استبدال القيم الفارغة في
df1
بقيمةpd.NA
التي تمثل قيمة غير متوفرة. -
يتم استخدام دالة
applymap
لتطبيق دالة على كل خلية فيdf1
. الدالة المستخدمة هنا تبني مجموعة من الأعمدة التي تحتوي على السلسلة في كل خلية. -
يتم استخدام الحلقة
apply
لتطبيق دالة على كل سلسلة فيdf2
. الدالة المستخدمة هنا تبحث عن السلسلة في كل مجموعة من الأعمدة فيdf1
وتجمع المؤشرات لكل سلسلة. -
يتم إنشاء إطار بيانات جديد
result
يحتوي على السلسلة منdf2
والمؤشرات المجمعة لكل سلسلة. -
يتم طباعة
result
لعرض النتائج.