"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني إدراج قائمة في خلية معينة في Python Pandas Dataframe؟

كيف يمكنني إدراج قائمة في خلية معينة في Python Pandas Dataframe؟

تم النشر بتاريخ 2024-11-18
تصفح:878

How Can I Insert a List into a Specific Cell in a Python Pandas Dataframe?

إدراج قائمة في خلية في Python Pandas Dataframe

يمكن أن يكون إدراج قائمة في خلية معينة في إطار بيانات الباندا مهمة صعبة. دعنا نستكشف الأساليب المختلفة والمشكلات المحتملة بناءً على المثال المحدد:

المشكلة الأصلية:

إطار بيانات 'df' بالبنية التالية:

    A  B
0  12  NaN
1  23  NaN

وقائمة "abc" تحتوي على ["foo"، "bar"]. الهدف هو إدراج هذه القائمة في الخلية 1B.

الجهود:

  1. df.ix[1,'B'] = abc: يلقي خطأ ValueError بسبب عدم تساوي طول المفاتيح والقيم.
  2. df.ix[1,'B'] = [abc]: إدراج قائمة تحتوي على القائمة 'abc' بدلاً من العناصر الفردية.
  3. df.ix[1,'B'] = ', '.join(abc): إدراج سلسلة بدلاً من القائمة.
  4. df.ix[1,'B'] = [', '. join(abc)]: إدراج قائمة مكونة من عنصر واحد تحتوي على السلسلة المرتبطة.

الحل:

تم استبدال طريقة set_value المهملة بـ at. استخدام الضمانات لتحديد قيمة واحدة:

df.at[1, 'B'] = ['foo', 'bar']
df.at[1, 'B'] = ['foo', 'bar']
اعتبارات إضافية:

تأكد من أن العمود الهدف يحتوي على dtype=object لاستيعاب إدراج القائمة.
  • يمكن تطبيق نفس الأسلوب لإدراج القوائم في الخلايا التي تحتوي على عدد صحيح أو قيم سلسلة.
  • ومع ذلك، عند إدراج قائمة في عمود يحتوي على أنواع بيانات مختلطة (عدد صحيح وسلسلة)، قد يحدث خطأ في القيمة. يمكن حل هذه المشكلة عن طريق تحويل العمود إلى dtype=object قبل الإدراج.
مثال محدث:

إدراج قائمة 'abc' في df2.loc[ 1,'B'] و df3.loc[1,'B']:

df2 = pd.DataFrame({ 'أ': [١٢]، 'ب': [نان]، 'ج': ['بلا'] }) df3 = pd.DataFrame({ 'أ': [١٢]، 'ب': [نان]، 'ج': ['بلا بلا']، 'د': [['item1', 'item2'], [11, 12, 13]] }) df2.loc[1, 'B'] = ['foo', 'bar'] df3.loc[1, 'B'] = ['foo', 'bar']

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3