दिलचस्प पोस्ट
विंडोज 8 की स्वचालित रंग थीम का सक्रिय रंग प्राप्त करें asp.net mvc azure "डाटा स्टोर तक पहुँचने में त्रुटि!" इकाई फ़्रेमवर्क कोड में एक ही तालिका के लिए एकाधिक विदेशी कुंजी को परिभाषित करना पहले हेरोकी पर 4 चित्रों को लोड नहीं किया जा रहा है EditText के साथ ListView में खोजें विदेशी कुंजी क्या क्वेरी प्रदर्शन में सुधार? कुछ तकनीकी रूप से क्रमबद्ध इनपुट गुण serializable क्यों नहीं हैं? विखंडों में एक सूची पर पुनरावृत्त करने के लिए सबसे "अजगर" तरीका क्या है? MySQL: अल्पविराम के रूप में एक से अधिक पंक्ति एकल पंक्ति से विभाजित है क्या इंजेक्शन बनाम कन्स्ट्रक्टर इंजेक्शन के बीच अंतर 2 में सामान्य पैरामीटर में अंतर है? जावास्क्रिप्ट – फेरबदल HTML सूची तत्व क्रम jQuery: ईवेंट हैंडलर्स को बाद में फिर से बाँधने के लिए खोलें एक ही नाम के साथ कई कुकीज़ कैसे प्रबंधित करें? पृष्ठभूमि संदर्भ (पृष्ठभूमि स्क्रिप्ट, ब्राउज़र कार्रवाई, पृष्ठ कार्रवाई, विकल्प पृष्ठ, आदि) में स्क्रिप्ट के बीच संवाद करें .NET के HttpWebRequest / Response के साथ एक स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग करना

पंडों में कॉलम का नाम बदलना

मेरे पास पेंडस और कॉलम लेबल्स का उपयोग करते हुए डेटा तालिका है, जिन्हें मुझे मूल कॉलम लेबलों को बदलने के लिए संपादित करना होगा।

मैं एक डेटा तालिका A में स्तंभ नाम बदलना चाहूंगा जहां मूल स्तंभ नाम हैं:

 ['$a', '$b', '$c', '$d', '$e'] 

सेवा मेरे

 ['a', 'b', 'c', 'd', 'e']. 

मेरे पास एक सूची में संग्रहीत कॉलम नाम हैं, लेकिन मुझे पता नहीं है कि स्तंभ नाम कैसे बदलना है I

Solutions Collecting From Web of "पंडों में कॉलम का नाम बदलना"

बस इसे प्रदान करें। .columns विशेषता:

 >>> df = pd.DataFrame({'$a':[1,2], '$b': [10,20]}) >>> df.columns = ['a', 'b'] >>> df ab 0 1 10 1 2 20 

df.rename() फ़ंक्शन का उपयोग करें और कॉलम का नाम बदलकर देखें। सभी स्तंभों का नाम बदलना नहीं है:

 df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}) # Or rename the existing DataFrame (rather than creating a copy) df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True) 

rename विधि एक फ़ंक्शन ले सकती है, उदाहरण के लिए:

 In [11]: df.columns Out[11]: Index([u'$a', u'$b', u'$c', u'$d', u'$e'], dtype=object) In [12]: df.rename(columns=lambda x: x[1:], inplace=True) In [13]: df.columns Out[13]: Index([u'a', u'b', u'c', u'd', u'e'], dtype=object) 

चूंकि आप केवल सभी स्तंभ नामों में $ साइन को हटाना चाहते हैं, इसलिए आप ऐसा कर सकते हैं:

 df = df.rename(columns=lambda x: x.replace('$', '')) 

या

 df.rename(columns=lambda x: x.replace('$', ''), inplace=True) 

जैसा कि http://pandas.pydata.org/pandas-docs/stable/text.html में दर्ज़ किया गया है:

 df.columns = df.columns.str.replace('$','') 
 df.columns = ['a', 'b', 'c', 'd', 'e'] 

यह आपके द्वारा उपलब्ध कराए गए क्रम में आपके द्वारा प्रदान किए गए नामों के साथ मौजूदा नामों को बदल देगा।

आप इन्हें इस तरह इंडेक्स द्वारा असाइन कर सकते हैं:

 df.columns.values[2] = 'c' #renames the 2nd column to 'c' 
 old_names = ['$a', '$b', '$c', '$d', '$e'] new_names = ['a', 'b', 'c', 'd', 'e'] df.rename(columns=dict(zip(old_names, new_names)), inplace=True) 

इस तरह से आप मैन्युअल रूप से new_names को संपादित कर सकते हैं। जब आप केवल कुछ कॉलम का नाम बदलने की ज़रूरत होती है, तो गलत वर्तनी, उच्चारण, विशेष वर्णों को हटा दें।

कॉलम नाम बनाम नाम्स ऑफ सीरीज़

मैं दृश्यों के पीछे क्या होता है, यह थोड़ा समझाता हूं।

डेटाफ्रेम श्रृंखला का एक सेट है

बदले में श्रृंखला एक numpy.array का विस्तार है

numpy.array s एक संपत्ति है numpy.array

यह श्रृंखला का नाम है। यह शायद ही कभी है कि पांडा इस विशेषता का सम्मान करता है, लेकिन यह जगहों में बोलता है और कुछ पांडा व्यवहारों को हैक करने के लिए इस्तेमाल किया जा सकता है।

कॉलम की सूची नामकरण

यहां बहुत सारे उत्तर df.columns विशेषता के बारे में बात करते हैं, एक list होने पर यह वास्तव में एक Series । इसका मतलब है कि इसमें एक .name विशेषता है।

यह तब होता है जब आप कॉलम Series के नाम को भरने का निर्णय लेते हैं:

 df.columns = ['column_one', 'column_two'] df.columns.names = ['name of the list of columns'] df.index.names = ['name of the index'] name of the list of columns column_one column_two name of the index 0 4 1 1 5 2 2 6 3 

ध्यान दें कि सूचकांक का नाम हमेशा एक स्तंभ कम होता है।

कलाकृतियों कि रेंगना

.name विशेषता कभी-कभी पर .name यदि आप df.columns = ['one', 'two'] तो df.one.name 'one'

यदि आप df.one.name = 'three' सेट df.one.name = 'three' तो df.columns अभी भी आपको ['one', 'two'] देंगे, और df.one.name आपको 'three'

परंतु

pd.DataFrame(df.one) वापस आ जाएगा

  three 0 1 1 2 2 3 

क्योंकि पांडा ने पहले से परिभाषित Series के .name को पुनः .name है।

मल्टी लेवल कॉलम नाम

पांडा में बहु स्तरित स्तंभ नाम करने के तरीके हैं I इसमें बहुत ज्यादा जादू नहीं है, लेकिन मैं इसे अपने जवाब में भी कवर करना चाहता हूं क्योंकि मुझे इस पर कोई भी चुनना नहीं दिखाई देता है।

  |one | |one |two | 0 | 4 | 1 | 1 | 5 | 2 | 2 | 6 | 3 | 

कॉलम को सूची में सेट करके यह आसानी से प्राप्त हो सकता है, जैसे:

 df.columns = [['one', 'one'], ['one', 'two']] 

पांडा 0.21+ उत्तर

संस्करण 0.21 में कॉलम का नाम बदलने के लिए कुछ महत्वपूर्ण अपडेट किए गए हैं।

  • rename विधि ने axis पैरामीटर को जोड़ा है जिसे columns या 1 सेट किया जा सकता है यह अद्यतन इस विधि को पांडा एपीआई के बाकी हिस्सों से मेल खाती है। इसमें अभी भी index और columns पैरामीटर हैं लेकिन अब आप उनका उपयोग करने के लिए मजबूर नहीं हैं।
  • set_axis विधि के साथ False पर सेट के साथ आपको सूची के साथ सभी सूचकांक या स्तंभ लेबल का नाम बदलने में सक्षम हो जाता है।

पांडुओं के उदाहरण 0.21+

नमूना डेटाफ्रेम का निर्माण:

 df = pd.DataFrame({'$a':[1,2], '$b': [3,4], '$c':[5,6], '$d':[7,8], '$e':[9,10]}) $a $b $c $d $e 0 1 3 5 7 9 1 2 4 6 8 10 

axis='columns' या axis=1 साथ rename का उपयोग करना

 df.rename({'$a':'a', '$b':'b', '$c':'c', '$d':'d', '$e':'e'}, axis='columns') 

या

 df.rename({'$a':'a', '$b':'b', '$c':'c', '$d':'d', '$e':'e'}, axis=1) 

दोनों में निम्न परिणाम हैं:

  abcde 0 1 3 5 7 9 1 2 4 6 8 10 

पुरानी विधि हस्ताक्षर का उपयोग करना अभी भी संभव है:

 df.rename(columns={'$a':'a', '$b':'b', '$c':'c', '$d':'d', '$e':'e'}) 

rename फ़ंक्शन, फ़ंक्शन भी स्वीकार करता है जो प्रत्येक स्तंभ नाम पर लागू होगा।

 df.rename(lambda x: x[1:], axis='columns') 

या

 df.rename(lambda x: x[1:], axis=1) 

एक सूची और inplace=False साथ set_axis का उपयोग करना

आप set_axis विधि में एक सूची प्रदान कर सकते हैं जो कि स्तंभों (या सूचकांक) की संख्या के बराबर है। वर्तमान में, True , लेकिन भविष्य में रिलीज़ होने में False हो जाएगा।

 df.set_axis(['a', 'b', 'c', 'd', 'e'], axis='columns', inplace=False) 

या

 df.set_axis(['a', 'b', 'c', 'd', 'e'], axis=1, inplace=False) 

क्यों नहीं df.columns = ['a', 'b', 'c', 'd', 'e'] ?

इस तरह सीधे कॉलम को निर्दिष्ट करने में कुछ भी गलत नहीं है। यह एक बिल्कुल अच्छा समाधान है

set_axis का उपयोग करने का लाभ यह है कि इसे किसी विधि श्रृंखला के हिस्से के रूप में इस्तेमाल किया जा सकता है और यह डेटाफ़्रेम की एक नई प्रति देता है। इसके बिना, आपको स्तंभों के पुन: संयोजन करने से पहले श्रृंखला के अपने मध्यवर्ती चरणों को एक अन्य चर में संग्रहीत करना होगा।

 # new for pandas 0.21+ df.some_method1() .some_method2() .set_axis() .some_method3() # old way df1 = df.some_method1() .some_method2() df1.columns = columns df1.some_method3() 

एक पंक्ति या पाइपलाइन समाधान

मैं दो चीजों पर ध्यान केन्द्रित करूंगा:

  1. ओपी स्पष्ट रूप से बताता है

    मेरे पास एक सूची में संग्रहीत कॉलम नाम हैं, लेकिन मुझे पता नहीं है कि स्तंभ नाम कैसे बदलना है I

    मैं '$' को कैसे प्रतिस्थापित करने की समस्या का समाधान नहीं करना चाहता या प्रत्येक कॉलम हैडर के पहले अक्षर को बंद करना। ओपी ने पहले ही यह कदम उठाया है। इसके बजाय, मैं मौजूदा columns ऑब्जेक्ट को प्रतिस्थापना स्तंभ नामों की एक सूची के साथ एक नया स्थान के साथ बदलने पर ध्यान केंद्रित करना चाहता हूं।

  2. df.columns = new जहां new नया कॉलम नामों की सूची उतनी सरल होती है जितना कि यह हो। इस दृष्टिकोण की खातिर यह है कि उसे मौजूदा डेटाफ्रेम के columns गुणों को संपादित करने की आवश्यकता है और यह इनलाइन नहीं किया गया है। मौजूदा डेटाफ्रेम को संपादित किए बिना मैं इसे पाइपलाइन के माध्यम से करने के लिए कुछ तरीके दिखाऊंगा


सेटअप 1
पूर्व-मौजूद सूची के साथ स्तंभ नामों को बदलने के लिए नाम बदलने की आवश्यकता पर ध्यान केंद्रित करने के लिए, मैं प्रारंभिक स्तंभ नामों और असंबंधित नए कॉलम नामों के साथ एक नया नमूना डेटाफ़्रेम df बनाऊंगा।

 df = pd.DataFrame({'Jack': [1, 2], 'Mahesh': [3, 4], 'Xin': [5, 6]}) new = ['x098', 'y765', 'z432'] df Jack Mahesh Xin 0 1 3 5 1 2 4 6 

समाधान 1
pd.DataFrame.rename

पहले से ही यह कहा गया है कि यदि आपके पास नए कॉलम के नामों के पुराने कॉलम नामों का मानचित्रण है, तो आप pd.DataFrame.rename उपयोग कर सकते हैं।

 d = {'Jack': 'x098', 'Mahesh': 'y765', 'Xin': 'z432'} df.rename(columns=d) x098 y765 z432 0 1 3 5 1 2 4 6 

हालांकि, आप आसानी से उस डिक्शनरी को बना सकते हैं और इसका rename लिए कॉल में शामिल कर सकते हैं। निम्नलिखित इस तथ्य का लाभ उठाते हैं कि जब df खत्म हो जाता है, हम प्रत्येक कॉलम के नाम पर पुनरावृत्त करते हैं।

 # given just a list of new column names df.rename(columns=dict(zip(df, new))) x098 y765 z432 0 1 3 5 1 2 4 6 

यह बहुत अच्छा काम करता है यदि आपके मूल कॉलम के नाम अद्वितीय हैं लेकिन अगर वे नहीं हैं, तो यह टूट जाता है।


सेटअप 2
गैर-अद्वितीय कॉलम

 df = pd.DataFrame( [[1, 3, 5], [2, 4, 6]], columns=['Mahesh', 'Mahesh', 'Xin'] ) new = ['x098', 'y765', 'z432'] df Mahesh Mahesh Xin 0 1 3 5 1 2 4 6 

समाधान 2
pd.concat keys तर्क का उपयोग कर

सबसे पहले, ध्यान दें कि जब हम समाधान 1 का उपयोग करने का प्रयास करेंगे तो क्या होगा:

 df.rename(columns=dict(zip(df, new))) y765 y765 z432 0 1 3 5 1 2 4 6 

हमने स्तंभ नाम के रूप में new सूची को मैप नहीं किया है हम y765 को दोहराते हुए समाप्त हो गए इसके बजाय, हम pd.concat फ़ंक्शन के keys तर्क का उपयोग कर सकते हैं जबकि df के कॉलम के माध्यम से दोहराते हैं।

 pd.concat([c for _, c in df.items()], axis=1, keys=new) x098 y765 z432 0 1 3 5 1 2 4 6 

समाधान 3
फिर से संगठित। इसका उपयोग केवल तब किया जाना चाहिए जब आपके पास सभी स्तंभों के लिए एक एकल dtype । अन्यथा, आप सभी स्तंभों के लिए dtype object साथ समाप्त करेंगे और उन्हें परिवर्तित करने के लिए अधिक शब्दकोश कार्य की आवश्यकता होगी।

सिंगल dtype

 pd.DataFrame(df.values, df.index, new) x098 y765 z432 0 1 3 5 1 2 4 6 

मिश्रित dtype

 pd.DataFrame(df.values, df.index, new).astype(dict(zip(new, df.dtypes))) x098 y765 z432 0 1 3 5 1 2 4 6 

समाधान 4
यह transpose और set_index साथ एक set_index चाल है pd.DataFrame.set_index हमें एक इंडेक्स इनलाइन सेट करने की अनुमति देता है लेकिन इसमें कोई भी सेट नहीं है। तो हम स्थानांतरित कर सकते हैं, फिर set_index , और वापस स्थानांतरित कर सकते हैं। हालांकि, समाधान 3 से मिश्रित dtype dtype बनाम एक ही प्रकार की dtype यहां पर लागू होता है।

सिंगल dtype

 df.T.set_index(np.asarray(new)).T x098 y765 z432 0 1 3 5 1 2 4 6 

मिश्रित dtype

 df.T.set_index(np.asarray(new)).T.astype(dict(zip(new, df.dtypes))) x098 y765 z432 0 1 3 5 1 2 4 6 

समाधान 5
pd.DataFrame.rename में एक lambda उपयोग करें। pd.DataFrame.rename कि new प्रत्येक तत्व के माध्यम से चक्र
इस समाधान में, हम लैम्ब्डा पास करते हैं जो x लेता है लेकिन फिर इसे अनदेखा करता है। यह भी एक y लेता है लेकिन यह अपेक्षा नहीं करता है इसके बजाय, एक इटरेटर एक डिफ़ॉल्ट मान के रूप में दिया जाता है और मैं उसके बाद x के मान के संबंध में बिना एक समय के माध्यम से चक्र के लिए इसका उपयोग कर सकता हूं।

 df.rename(columns=lambda x, y=iter(new): next(y)) x098 y765 z432 0 1 3 5 1 2 4 6 

और जैसा कि लोगों ने मुझे सोफीथन चैट में बताया , अगर मैं x और y बीच में एक * जोड़ता हूं, तो मैं अपने y चर को संरक्षित कर सकता हूं। हालांकि, इस संदर्भ में मुझे विश्वास नहीं है कि इसे सुरक्षा की आवश्यकता है। यह अभी भी उल्लेख के लायक है

 df.rename(columns=lambda x, *, y=iter(new): next(y)) x098 y765 z432 0 1 3 5 1 2 4 6 

यदि आपको डेटाफ्रेम मिल गया है, तो df.column सभी को एक ऐसी सूची में छोड़ देता है जिसे आप हेरफेर कर सकते हैं और फिर अपने डेटाफ़्रेम में कॉलम के नाम के रूप में पुनः असाइन कर सकते हैं …

 columns = df.columns columns = [row.replace("$","") for row in columns] df.rename(columns=dict(zip(columns, things)), inplace=True) df.head() #to validate the output 

सबसे अच्छा तरीका? IDK। एक रास्ता – हाँ

प्रश्न के उत्तर में आगे रखी गई सभी मुख्य तकनीकों का मूल्यांकन करने का एक बेहतर तरीका सीपीआरओफ़ाइल का उपयोग करने के लिए स्मृति आवेश और निष्पादन समय को लेकर नीचे है। @केदी, @काइटलीन, और @ ईयूमिरो का सबसे तेज निष्पादन समय के साथ कार्य था – हालांकि ये कार्य इतनी तेज़ हैं कि हम सभी उत्तरों के लिए .000 और .001 सेकेंड के गोल की तुलना कर रहे हैं। नैतिक: ऊपर का मेरा जवाब शायद सबसे अच्छा तरीका नहीं है।

 import pandas as pd import cProfile, pstats, re old_names = ['$a', '$b', '$c', '$d', '$e'] new_names = ['a', 'b', 'c', 'd', 'e'] col_dict = {'$a': 'a', '$b': 'b','$c':'c','$d':'d','$e':'e'} df = pd.DataFrame({'$a':[1,2], '$b': [10,20],'$c':['bleep','blorp'],'$d':[1,2],'$e':['texa$','']}) df.head() def eumiro(df,nn): df.columns = nn #This direct renaming approach is duplicated in methodology in several other answers: return df def lexual1(df): return df.rename(columns=col_dict) def lexual2(df,col_dict): return df.rename(columns=col_dict, inplace=True) def Panda_Master_Hayden(df): return df.rename(columns=lambda x: x[1:], inplace=True) def paulo1(df): return df.rename(columns=lambda x: x.replace('$', '')) def paulo2(df): return df.rename(columns=lambda x: x.replace('$', ''), inplace=True) def migloo(df,on,nn): return df.rename(columns=dict(zip(on, nn)), inplace=True) def kadee(df): return df.columns.str.replace('$','') def awo(df): columns = df.columns columns = [row.replace("$","") for row in columns] return df.rename(columns=dict(zip(columns, '')), inplace=True) def kaitlyn(df): df.columns = [col.strip('$') for col in df.columns] return df print 'eumiro' cProfile.run('eumiro(df,new_names)') print 'lexual1' cProfile.run('lexual1(df)') print 'lexual2' cProfile.run('lexual2(df,col_dict)') print 'andy hayden' cProfile.run('Panda_Master_Hayden(df)') print 'paulo1' cProfile.run('paulo1(df)') print 'paulo2' cProfile.run('paulo2(df)') print 'migloo' cProfile.run('migloo(df,old_names,new_names)') print 'kadee' cProfile.run('kadee(df)') print 'awo' cProfile.run('awo(df)') print 'kaitlyn' cProfile.run('kaitlyn(df)') 
 df = pd.DataFrame({'$a': [1], '$b': [1], '$c': [1], '$d': [1], '$e': [1]}) 

यदि आपकी नई कॉलम की सूची मौजूदा कॉलम के समान क्रम में है, तो असाइनमेंट सरल है:

 new_cols = ['a', 'b', 'c', 'd', 'e'] df.columns = new_cols >>> df abcde 0 1 1 1 1 1 

यदि आपके पास नए कॉलम नामों के पुराने कॉलम नामों पर एक शब्दकोश डाला गया है, तो आप निम्न कर सकते हैं:

 d = {'$a': 'a', '$b': 'b', '$c': 'c', '$d': 'd', '$e': 'e'} df.columns = df.columns.map(lambda col: d[col]) # Or `.map(d.get)` as pointed out by @PiRSquared. >>> df abcde 0 1 1 1 1 1 

यदि आपके पास कोई सूची या शब्दकोश मैपिंग नहीं है, तो आप सूची की समझ के माध्यम से अग्रणी $ प्रतीक पट्टी कर सकते हैं:

 df.columns = [col[1:] if col[0] == '$' else col for col in df] 

हम मूल कॉलम लेबल को बदल सकते हैं, एक और तरीका है मूल कॉलम लेबल से अवांछित अक्षर ('$') को अलग करना।

यह df.column पर लूप के लिए चलकर और छीन किए गए कॉलम को df.column को जोड़कर किया जा सकता था।

इसके बजाय, हम नीचे की तरह सूची की समझ का उपयोग करके एक ही वक्तव्य में यह बड़े करीने से कर सकते हैं:

 df.columns = [col.strip('$') for col in df.columns] 

(पायथन में strip विधि स्ट्रिंग की शुरुआत और अंत से दिए गए चरित्र को स्ट्रिप्स करता है।)

असली सरल बस का उपयोग करें

 df.columns = ['Name1', 'Name2', 'Name3'...] 

और यह उन कॉलम नामों को उन आदेशों को निर्दिष्ट करेगा जो आपने उन्हें डाल दिए थे

आप इसके लिए str.slice उपयोग कर सकते हैं:

 df.columns = df.columns.str.slice(1) 

मैं यह प्रश्न जानता हूं और जवाब मौत के लिए चबाया गया है लेकिन मैंने उस समस्या में से एक के लिए प्रेरणा के लिए इसका उल्लेख किया I मैं इसे बिट्स और अलग-अलग उत्तरों से टुकड़ों का उपयोग करने में सक्षम था, इसलिए किसी को इसकी ज़रूरत के मुताबिक मेरी प्रतिक्रिया प्रदान कर रहा हूं।

मेरी विधि सामान्य है जिसमें आप अतिरिक्त सीमांकक को अल्पविराम से विभाजित कर सकते हैं delimiters= चर और भविष्य-सबूत यह।

कार्य संहिता:

 import pandas as pd import re df = pd.DataFrame({'$a':[1,2], '$b': [3,4],'$c':[5,6], '$d': [7,8], '$e': [9,10]}) delimiters = '$' matchPattern = '|'.join(map(re.escape, delimiters)) df.columns = [re.split(matchPattern, i)[1] for i in df.columns ] 

आउटपुट:

 >>> df $a $b $c $d $e 0 1 3 5 7 9 1 2 4 6 8 10 >>> df abcde 0 1 3 5 7 9 1 2 4 6 8 10 

डेटाफ़्रेम- df.rename () काम करेगा

 df.rename(columns = {'Old Name':'New Name'}) 

df आपके पास डेटाफ्रेम है, और पुराना नाम वह कॉलम नाम है जिसे आप बदलना चाहते हैं, तो नया नाम आपके द्वारा बदलते हुए नया नाम है। यह डेटाफ्रेम अंतर्निहित पद्धति बहुत आसान बनाता है।

ध्यान दें कि यह दृष्टिकोण एक मल्टी इंडेक्स के लिए काम नहीं करता है एक मल्टी इंडेक्स के लिए, आपको निम्न की तरह कुछ करना होगा:

 >>> df = pd.DataFrame({('$a','$x'):[1,2], ('$b','$y'): [3,4], ('e','f'):[5,6]}) >>> df $a $be $x $yf 0 1 3 5 1 2 4 6 >>> rename = {('$a','$x'):('a','x'), ('$b','$y'):('b','y')} >>> df.columns = pandas.MultiIndex.from_tuples([ rename.get(item, item) for item in df.columns.tolist()]) >>> df abe xyf 0 1 3 5 1 2 4 6 

यदि आपको अपने नियंत्रण से बाहर उपलब्ध सिस्टम द्वारा नामित कॉलम के लोड से निपटना होगा, तो मैं निम्नलिखित दृष्टिकोण से आया हूं जो एक सामान्य दृष्टिकोण और एक बार में विशिष्ट replacments का संयोजन है।

मैं कॉलम नामों के कुछ विशिष्ट परिशिष्टों को फेंकने के लिए पहले रेगएक्स एक्सप्रेशंस का उपयोग करते हुए डेटाफ़्रेम कॉलम नामों से एक शब्दकोश बनाते हैं और फिर मैं प्राप्तकर्ता डेटाबेस में बाद में अपेक्षित कोर कॉलम नाम के लिए डिक्शनरी में विशिष्ट प्रतिस्थापन जोड़ता हूं।

यह तब एक बार में डेटाफ़्रेम पर लागू होता है

 dict=dict(zip(df.columns,df.columns.str.replace('(:S$|:C1$|:L$|:D$|\.Serial:L$)',''))) dict['brand_timeseries:C1']='BTS' dict['respid:L']='RespID' dict['country:C1']='CountryID dict['pim1:D']='pim_actual' df.rename(columns=dict, inplace=True) 

बस इस का उपयोग करें.यह स्तंभ नाम बदल जाएगा

 df.columns = ['a', 'b', 'c', 'd', 'e'] 

यदि आप पंक्ति नामों को नहीं चाहते हैं तो df.columns = ['a', 'b',index=False]