pandas python شرح




الحصول على قائمة من رؤوس الأعمدة pandas DataFrame (10)

أرغب في الحصول على قائمة برؤوس الأعمدة من pandas DataFrame. سوف يأتي DataFrame من مدخلات المستخدم حتى لا أعرف عدد الأعمدة التي ستوجد أو ما سيتم استدعاؤه.

على سبيل المثال ، إذا أعطيت DataFrame مثل هذا:

>>> my_dataframe
    y  gdp  cap
0   1    2    5
1   2    3    9
2   8    7    2
3   3    4    7
4   6    7    7
5   4    8    3
6   8    2    8
7   9    9   10
8   6    6    4
9  10   10    7

أرغب في الحصول على قائمة مثل هذه:

>>> header_list
[y, gdp, cap]

في دفتر الملاحظات

بالنسبة إلى استكشاف البيانات في دفتر IPython ، فإن الطريقة المفضلة هي:

sorted(df)

والتي سوف تنتج سهلة لقراءة قائمة مرتبة أبجديا.

في مستودع رمز

في التعليمات البرمجية أجد أنه أكثر وضوحا للقيام به

df.columns

لأنه يخبر الآخرين بقراءة التعليمات البرمجية الخاصة بك ما تقوم به.


أبسط طريقة هي:

list(my_dataframe.columns)

انها مثيرة للاهتمام ولكن df.columns.values.tolist() ما يقرب من 3 مرات أسرع ثم df.columns.tolist() ولكن اعتقد انها هي نفسها:

In [97]: %timeit df.columns.values.tolist()
100000 loops, best of 3: 2.97 µs per loop

In [98]: %timeit df.columns.tolist()
10000 loops, best of 3: 9.67 µs per loop

بعض الاختبارات السريعة ، وربما لا يثير الدهشة أن الإصدار المدمج باستخدام dataframe.columns.values.tolist() هو الأسرع:

In [1]: %timeit [column for column in df]
1000 loops, best of 3: 81.6 µs per loop

In [2]: %timeit df.columns.values.tolist()
10000 loops, best of 3: 16.1 µs per loop

In [3]: %timeit list(df)
10000 loops, best of 3: 44.9 µs per loop

In [4]: % timeit list(df.columns.values)
10000 loops, best of 3: 38.4 µs per loop

(ما زلت أحب list(dataframe) رغم ذلك ، وذلك بفضل EdChum!)


كما أجاب سيمون فيسر ... يمكنك القيام به

list(my_dataframe.columns.values) 

أو

list(my_dataframe) # for less typing.

ولكن أعتقد أن معظم البقعة الحلوة هي:

list(my_dataframe.columns)

إنه صريح ، في نفس الوقت لا طويلا بلا داع.


هناك طريقة مدمجة أكثرها أداءً:

my_dataframe.columns.values.tolist()

.columns بإرجاع Index ، .columns.values إرجاع array وهذا يحتوي على دالة مساعدة لإرجاع list .

تصحيح

بالنسبة لأولئك الذين يكرهون كتابة هذا هو على الأرجح أقصر الطرق:

list(df)

يمكن استخدام سمات الفهرس

df = pd.DataFrame({'col1' : np.random.randn(3), 'col2' : np.random.randn(3)},
                 index=['a', 'b', 'c'])

يمكنك الحصول على القيم كقائمة من خلال:

list(my_dataframe.columns.values)

كما يمكنك ببساطة استخدام:

list(my_dataframe)

[column for column in my_dataframe]

pandas docs : التكرار على dataframes بإرجاع تسميات العمود


n = []
for i in my_dataframe.columns:
    n.append(i)
print n






dataframe