2017-10-11 1 views
3

ident 열에서 값을 대문자로 사용하기 위해 아래 코드 Python 3.4.4을 실행하면 오류가 발생하지만 출력은 대문자로 표시되지 않습니다. 문제를 파악하는 데 도움이 필요합니다.열을 대문자로 사용하는 lambda 코드

import pandas as pd 
import numpy as np 
#Create a dataframe 

data = {'ident': ['Jack', 'Mary', 'Teresa', 'James', 'Anna'], 
     'year': [2001, 2002, 2003, 2004, 2007], 
     'reports': [67, 5, 36, 9, 14], 
     'scope': [17, 102, 57, 49, 77] 
     } 
df = pd.DataFrame(data, index = ['Bahia', 'Pico', 'Santa Fe', 'Maine', 
'Zuma']) 
#Create a capitalizer function 
capitalize = lambda x: x.upper() 

#Create a capitalizing function over the column 'ident' 

df['ident'].apply(capitalize) 
print (df) 
+0

그건 그렇고. 이 질문에 대한 답변을 제공하지 않습니다. 그 대답은 아래에 있습니다. 그러나 별도의 '람다'가 필요하지 않습니다. 'df [ 'ident']. apply (str.upper)'할 수 있습니다. 열을 다시 할당하지 못했습니다. 아래 답변을 참조하십시오. – piRSquared

+1

파이썬에는 ** ** 결과를 다시 할당하십시오. **라는 정규 Q & A가 있어야한다고 생각하십시오. – Divakar

+1

@Divakar 우리는 그로부터 많은 질문을 보았습니다 ... 그들이 대체하고, 적용하고, 추가 할 때 ... – Wen

답변

1

데이터 프레임에 대한 변경 사항은 다시 저장되지 않습니다.

df['ident'] = df['ident'].apply(capitalize) 

df['ident'].apply(capitalize) 

교체하고 그것을 작동합니다.

그래서 전체 코드가 보이는 같은 :

import pandas as pd 
import numpy as np 
#Create a dataframe 

data = {'ident': ['Jack', 'Mary', 'Teresa', 'James', 'Anna'], 
     'year': [2001, 2002, 2003, 2004, 2007], 
     'reports': [67, 5, 36, 9, 14], 
     'scope': [17, 102, 57, 49, 77] 
     } 
df = pd.DataFrame(data, index = ['Bahia', 'Pico', 'Santa Fe', 'Maine','Zuma']) 
#Create a capitalizer function 
capitalize = lambda x: x.upper() 

#Create a capitalizing function over the column 'ident' 

df['ident'] = df['ident'].apply(capitalize) 
print (df) 

또는 그것을 할도 좋네요 (이럴) df.ident=df.ident.str.upper()

+0

전체 데이터 프레임을 시리즈 ID로 변경하고 있습니다 – Vaishali

+0

수정 : 이전에 ident를 잊어 버렸습니다를 참조하십시오. 죄송합니다 –

1

당신은 [ '는 답하라']

df['ident'] = df['ident'].apply(capitalize) 
를 DF 다시 결과를 할당해야

간단하게 사용 하겠지만

df['ident'] = df['ident'].str.upper() 
2
df.ident=df.ident.str.upper() 
df 
Out[1101]: 
      ident reports scope year 
Bahia  JACK  67  17 2001 
Pico  MARY  5 102 2002 
Santa Fe TERESA  36  57 2003 
Maine  JAMES  9  49 2004 
Zuma  ANNA  14  77 2007 
관련 문제