2017-12-31 40 views
0

다음과 같은 문제가 있습니다. 두 개의 파이썬 스크립트가 있습니다. 첫 번째 CSV 파일을 새로운 형식으로 변환 (특정 열 삭제 및 달러 기호 제거)팬더 : CSV 번호에서 '-'를 제거하십시오.

별도의 스크립트는 변환 된 CSV 파일을 모두 읽고 특정 키로 데이터를 그룹화하여 하나의 큰 스크립트를 만듭니다.

다음 모든 문제를 계속 실행한다는 점을 제외하면이 모든 작업이 충분히 효과적입니다.

두 파일의 열 중 하나 Money Out에는 '-'(-235.93)로 시작하는 값이 포함되는 경우가 있습니다. 이 기호를 파일에서 제거하고 싶습니다.

두 스크립트 모두에 다음 코드를 입력했지만 심볼을 제거 할 수 없습니다. 데이터는 때때로 숫자이며 때로는 문자열입니다. 문자열로 통합하고 '대체'방법을 사용하면 문제가 해결 될 것이라고 생각했지만 아직 해결되지 않았습니다. 나는 또한 pandas 방법으로 빌드를 사용했지만 아직 쓸모가 없습니다.

df['Money Out'] = df['Money Out'].astype(str) 
df['Money Out'] = df['Money Out'].replace('-', '') 
df['Money Out'].replace('-', '', inplace=True) 

내가 뭘 잘못하고 있는지 알 수있는 사람이 있습니까?

+0

'.str.replace ('-', '')'-'Series.replace'는 뭔가 다른 것입니다 ... –

답변

1

에 코드를 입력 할 수 있습니다 :

df['Money Out'].replace('-', '', inplace=True) 

Series.replace을 사용하고 다른 것은 (컬럼의 정확히 일치 또는 값을 정규식 대체)입니다 Series.str.replace 함수보다 (더 전통적으로 다른 곳에있는 부분 문자열을 대체하면) 다음을 사용할 수 있습니다.

df['Money Out'] = df['Money Out'].str.replace('-', '') 

텍스트에서 하이픈을 제거하십시오.

+0

이것으로 해결되었습니다! 감사! – Jasper

1

봅니다이

df['Money Out'] = df.apply(lambda r: ("%s"%(r['Money Out'] or "0.0")).replace("-",""), axis=1) 
관련 문제