2013-11-01 19 views
31

örneğin, ben varsa:piton: yapmak pandalar dataframe sütun başlıkları benim pandalar veri çerçevesi küçük harf</p> <p>tüm sütun başlıkları yapmak istiyorum tümü küçük

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

Ben XRAT değiştirmek istiyorum gibi bir şey yaparak xrat için: Yani

data.headers.lowercase() 

ben almak:

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

Her sütun üstbilgisinin adlarını önceden bilmeyeceğim.

Teşekkürler!

cevap

60

Böyle yapabilirsiniz:

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

veya

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

örnek:

>>> 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 
+3

Bunun alt (sütun1) == alt (sütun2) olduğunda (örn., 'A' ve 'A') sütun adlarının çoğaltılmasına neden olabileceğini unutmayın. Bu, daha sonra sütunlara başvururken istenmeyen sonuçlara neden olabilir. (ör. veri ['a'], bir dizi değil, bir "Data") 'a' olarak adlandırılan tüm sütunlarla döner. Örnek için şu özeti görün: https://gist.github.com/grisaitis/170e82a008480acb4fa3 – grisaitis

+0

'[x.lower() x in data.columns]' eşdeğeri: '[x.lower() for x veride] – joctee

9

bir zincirleme yöntem çağrısı kullanarak yeniden adlandırma yapmak istiyorsanız, yapabilirsiniz kullanmak

data.rename(
    columns=unicode.lower 
) 

(Python 2)

veya

data.rename(
    columns=str.lower 
) 

(Python 3)

27

Sen columns için str.lower ile kolayca yapabilirdi:

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

Örnek:

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 
İlgili konular