2016-06-21 3 views
5

일부 조커는 우리 회사에서 엔지니어링 문제를 추적하기 위해 Lotus 데이터베이스/애플릿을 만들었습니다. 농담은 정보의 핵심 부분이 특수 문자 ... 숫자 기호 (해쉬 태그, 파운드 기호, \ u0023)로 명명되었다는 것입니다.팬더 데이터 프레임 열 이름 : 특별한 charater 제거

약칭 샘플 : 팬더 등 dataframe python3에 CSV 파일 및 프로세스

KA#   Issue Date  Current Position 
27144  1/9/2014  Accounting 
27194  12/20/2012  Engineering 
32474  4/21/2008  Engineering 
32623-HOLD 4/25/2016  Engineering 
32745  11/13/2012  SEPE 
32812  10/30/2013  Engineering 
32817  12/7/2012  Purchasing 
32839  1/8/2013  SEPE 

I 출력이 테이블 (4K 행 15 열).

다양한 출력을 생성합니다. 내가 좋아하는 뭔가를 사용하는 경우 :

df.iloc[:,[0,3,1,8,9,10]] 

을 나는 적절한 출력을 얻을과 키 열은 "KA#"로 표시됩니다. ("키 열"이라고 할 때, "가장 중요한"... "색인"이 아님을 의미합니다.) 일련 번호를 유지합니다.

불행히도 사람들은 때때로 CSV에 대한 내 내보내기 "KA#"이 특정 열 번호라는 것을 보장 할 수는 없습니다. 나는 열 이름을 사용하고 싶습니다 :

df.loc[:,["KA#","Issue Date","Current Position"]] 

그러나 "KA#" 열은 NaN이의 가득합니다.

도움을 주셔서 감사합니다. 내가 이름을 변경하려고하면

마지막으로, "KA#" 단순히 "KA"합니다 :

df['KA#'].name = 'KA' 

는 KeyError를하고

df = df.rename(columns={"KA#": "ka"}) 

완전히 무시가 발생합니다. 열은 "KA#"으로 표시됩니다.

누구나 그 심볼을 제거하거나 처리 할 수있는 방법을 생각할 수 있습니까? 나는 심지어이 시점에서 정규 표현식에 정착한다.

도움을 주셔서 감사합니다.

답변

5

사용 str.replace :
df.columns=df.columns.str.replace('#','')

당신은 documentation이를 확인할 수 있습니다.

+1

그리고 특히이 결과를'df.columns'에 할당하십시오. – chrisaycock

+0

예.이 문서에서 확인할 수 있습니다. – shivsn

+0

부적절한 문자가있는 열이 하나 뿐이므로 문제가 해결되었습니다. 그러므로 "대답했다". 그리고 시브 슨에게 "고마워." 특정 열을 대상으로 지정하려는 경우이 방법은 다소 번거 롭습니다. 나는 내가 그것에 도착했을 때 내가 그것에 관해 걱정할 것이다라고 생각한다. –