ابحث عن القيمة في DataFrame باستخدام الشروط

0

أستخدم حاليًا وظيفة loc على النحو التالي:

    import numpy as np
    import pandas as pd
    df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})

    a=df.loc[(df.A==1), ['B']]
    print(a)

يؤدي هذا إلى إرجاع "B 2" بدلاً من "2" لذلك لا يمكنني إلحاق هذه القيمة في جدول الإخراج الخاص بي على النحو التالي:

   output_table['column'][row]=a

كيف يمكنني الحصول على "2" فقط بدلاً من الرأس والقيمة؟

1 إجابة

1
افضل جواب

هناك عدة عوامل هنا.

أولا قبل كل شيء،

df.loc[(df.A==1), 'B']

يختلف عن

df.loc[(df.A==1), ['B']]

السابق يمنحك pd.Series ، هذا الأخير يعطي أ pd.DataFrame . ربما تريد أول واحد ، والذي يجب أن يعمل مع الرمز الذي نشرته. إذا كنت تريد حقا فقط 2 واعلم أن السلسلة ستحتوي على عنصر واحد فقط ، يمكنك القيام به بشكل صريح

df.loc[(df.A==1), 'B'].item()

للحصول على القيمة المرتجعة.

الثاني ، إذا output_table هو إطار بيانات ربما تريده

output_table.low[row, 'column'] = a

بدلا من output_table['column'][row] . والبيان الأخير تعديل نسخة من الإطار البيانات الخاصة بك، في حين أن الأول وتعديل الإطار البيانات. أنصح بفحص .loc صفحة مستندات لمزيد من المعلومات حول هذا.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام