2017-10-15 1 views
1

를 교체 나는 다음과 같은 코드가 있습니다.replace은 첫 번째 값

df_demo['Age'] = df_demo['Age'].replace([23842674135270370, 
23842674044440370, 23842674044420370, 23842674044430370], 
['18-24', '25-34', '35-44', '45+']) 

(숫자는 광고 ID 태그, 그리고 나는 그들이 대상으로하는 연령 그룹에 대체하기 위해 노력하고있어.)

코드는 첫 번째 숫자를 읽고 그것을 (18-24로) 대체합니다. 나머지 숫자는 읽고 바꾸지 않습니다. 숫자의 순서를 뒤집 으면 (25-34 쌍을 첫 번째 집합으로 이동하는 것처럼) 첫 번째 쌍을 바꾸지 만 다른 쌍은 대체하지 않습니다.

.replace()에 대한 구조가 동일합니다 -() 내에서 두 개의 목록을 사용하여 프로그램에서 더 위로 올라와 완벽하게 작동합니다. 그러나 이것은 하나가 아니며 작동하지 않는 이유를 알 수 없습니다. 나를 위해

+0

값의 정수 있습니까? 문자열에''23842674135270370 '과 같이''23842674135270370''을 추가하면 – jezrael

+0

이 내 측면에서 작동합니다. – Wen

+0

@jezrael 그들은 정수입니다. 문자열/정수. – jbachlombardo

답변

1

다른 하나 dtype에 의해 string에 열 Age 변환 한 후 string의 교체 작업 :

df_demo = pd.read_csv('demographics - Sheet1.csv', dtype={'Age':str}) 
print (df_demo.tail()) 

190 191 23842674135270370  Yes 
191 192 23842674135270370  Yes 
192 193 23842674044420370  Yes 
193 194 23842674135270370  Yes 
194 195 23842674044420370  Yes 

df_demo['Age'] = df_demo['Age'].replace(
['23842674135270370','23842674044440370','23842674044420370','23842674044430370'], 
['18-24', '25-34', '35-44', '45+']) 

print (df_demo.tail()) 
    Name Age Newsletter 
190 191 18-24  Yes 
191 192 18-24  Yes 
192 193 35-44  Yes 
193 194 18-24  Yes 
194 195 35-44  Yes 
+0

나를 위해 일했습니다 - 감사합니다! – jbachlombardo