मैं पांडा डेटाफ्रेम कॉलम हेडर सभी लोअरकेस कैसे बना सकता हूं?


96

मैं अपने पंडों के डेटा फ्रेम लोअर केस में सभी कॉलम हेडर बनाना चाहता हूं

उदाहरण

अगर मेरे पास:

data =

  country country isocode  year     XRAT          tcgdp
0  Canada             CAN  2001  1.54876   924909.44207
1  Canada             CAN  2002  1.56932   957299.91586
2  Canada             CAN  2003  1.40105  1016902.00180
....

मैं कुछ ऐसा करके XRAT को xrat में बदलना चाहूंगा:

data.headers.lowercase()

ताकि मुझे मिल जाए:

  country country isocode  year     xrat          tcgdp
0  Canada             CAN  2001  1.54876   924909.44207
1  Canada             CAN  2002  1.56932   957299.91586
2  Canada             CAN  2003  1.40105  1016902.00180
3  Canada             CAN  2004  1.30102  1096000.35500
....

मुझे समय से पहले प्रत्येक कॉलम हेडर के नाम नहीं पता होंगे।


10
अधिक आसानdf.columns = df.columns.str.lower()
एलेक्स मोंटोया

जवाबों:


175

आप इसे इस तरह से कर सकते हैं:

data.columns = map(str.lower, data.columns)

या

data.columns = [x.lower() for x in data.columns]

उदाहरण:

>>> data = pd.DataFrame({'A':range(3), 'B':range(3,0,-1), 'C':list('abc')})
>>> data
   A  B  C
0  0  3  a
1  1  2  b
2  2  1  c
>>> data.columns = map(str.lower, data.columns)
>>> data
   a  b  c
0  0  3  a
1  1  2  b
2  2  1  c

7
ध्यान दें कि इससे डुप्लिकेट कॉलम के नाम तब कम हो सकते हैं जब (column1) == लोअर (column2) (जैसे, 'a' और 'A')। स्तंभों को बाद में संदर्भित करने पर इसके अनपेक्षित परिणाम हो सकते हैं। (उदाहरण के लिए डेटा ['ए'] एक डेटाफ़्रेम लौटाएगा, न कि एक श्रृंखला, जिसमें 'ए' नाम के सभी कॉलम होंगे। इस उदाहरण को देखें: gist.github.com/grisaitis/170e82a008480acb4fa3
grisaitis

1
[x.lower() for x in data.columns]के बराबर है:[x.lower() for x in data]
जोंक्टी

जब आप इस पर होते हैं, तो इसका उपयोग करना अच्छा होता है[x.lower().strip() for x in df0]
पावेल क्रैनबर्ग

@PawelKranzberg क्या आपके पास कोई विचार है कि कॉलम के नामों को कैसे कम किया जाएMultiIndex
जिज्ञासु_उपनिवासी

1
@ क्यूरियस_नस्टियन - हां, जैसे:df.index.names = [x.lower().strip() for x in df.index.names]
पावेल

99

आप के साथ आसानी से कर सकता है str.lowerके लिए columns:

df.columns = df.columns.str.lower()

उदाहरण:

In [63]: df
Out[63]: 
  country country isocode  year     XRAT         tcgdp
0  Canada             CAN  2001  1.54876  9.249094e+05
1  Canada             CAN  2002  1.56932  9.572999e+05
2  Canada             CAN  2003  1.40105  1.016902e+06

In [64]: df.columns = df.columns.str.lower()

In [65]: df
Out[65]: 
  country country isocode  year     xrat         tcgdp
0  Canada             CAN  2001  1.54876  9.249094e+05
1  Canada             CAN  2002  1.56932  9.572999e+05
2  Canada             CAN  2003  1.40105  1.016902e+06

19

यदि आप एक जंजीर विधि कॉल का उपयोग करके नाम बदलना चाहते हैं, तो आप उपयोग कर सकते हैं

data.rename(
    columns=unicode.lower
)

(अजगर 2)

या

data.rename(
    columns=str.lower
)

(अजगर 3)


0

यहाँ एक आसान तरीका है: data.columns = data.columns.str.lower()


यदि फ़ील्ड संख्यात्मक है तो यह एक त्रुटि देगा
चाडी फ़ॉउड

0
df.columns = df.columns.str.lower()

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

यदि आपके पास संख्यात्मक हेडर हैं तो इसका उपयोग करें:

df.columns = [str(x).lower() for x in df.columns]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.