python - पांडा डेटाफ्रेम कॉलम हेडर से सूची प्राप्त करें




pandas dataframe (10)

मैं एक पांडा डेटाफ्रेम से कॉलम हेडर की एक सूची प्राप्त करना चाहता हूं। डेटाफ्रेम उपयोगकर्ता इनपुट से आएगा, इसलिए मुझे नहीं पता होगा कि कितने कॉलम होंगे या उन्हें क्या कहा जाएगा।

उदाहरण के लिए, अगर मुझे इस तरह डेटाफ्रेम दिया गया है:

>>> 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]

नोटबुक में

आईपीथन नोटबुक में डेटा अन्वेषण के लिए, मेरा पसंदीदा तरीका यह है:

sorted(df)

जो वर्णानुक्रमित क्रमबद्ध सूची को पढ़ने में आसान उत्पन्न करेगा।

एक कोड भंडार में

कोड में मुझे यह करने के लिए और अधिक स्पष्ट लगता है

df.columns

क्योंकि यह दूसरों को आपके कोड को पढ़ने के बारे में बताता है जो आप कर रहे हैं।


आप मूल्यों को एक सूची के रूप में प्राप्त कर सकते हैं:

list(my_dataframe.columns.values)

इसके अलावा आप बस उपयोग कर सकते हैं:

list(my_dataframe)

कुछ त्वरित परीक्षण किया, और शायद अविश्वसनीय रूप से अंतर्निहित संस्करण 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) डेटाफ्रेम) पसंद है, इसलिए एडचम धन्यवाद!)


जैसा कि शिमोन विसार द्वारा उत्तर दिया गया ... आप कर सकते थे

list(my_dataframe.columns.values) 

या

list(my_dataframe) # for less typing.

लेकिन मुझे लगता है कि सबसे प्यारी जगह है:

list(my_dataframe.columns)

यह स्पष्ट है, एक ही समय में अनावश्यक रूप से लंबे समय तक नहीं।


यह 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

सबसे आसान तरीका है:

list(my_dataframe.columns)

सूचकांक विशेषताओं का उपयोग कर सकते हैं

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


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




dataframe