원본 팬더 데이터 프레임이있는 경우 df
이라고합시다. 데이터 프레임을 CSV 파일로 변환 한 다음 팬더 데이터 프레임으로 다시 변환합니다. df.equals (새 데이터 프레임)를 호출하면 false를 반환합니다. 한 가지 오류로 인해 색인 생성이 중단 될 수 있다고 생각했기 때문에 새로운 데이터 프레임의 색인을 원본 데이터 프레임의 색인 인 CSV 파일의 첫 번째 열로 설정했지만 여전히 동일한 결과를 얻었습니다.데이터 프레임을 CSV로 변환하고 데이터 프레임으로 돌아온 후 false를 반환하는 pd.equals()
예제 코드 : 나는 그래서 나는 그들이 동일한 것으로 나타나 다시 CSV로 DF2를 변환하여이 CSV를을 (FILE_NAME 및 df2.to_csv()
에서 만든 CSV)를 비교하여 몇 가지 수동 테스트를, '않았다
import pandas as pd
df = <stuff here that aggregates other dataframes into one>
file_name = 'test/aggregated_reports.csv'
df.to_csv(file_name)
df2 = pd.read_csv(file_name, index_col=0)
assert df.equals(df2)
원래 데이터 프레임을 CSV 파일로 변환 할 때 "차이"가 발생한다고 가정합니다. 그러나 나는 여전히 그것을 이해할 수 없다 ...
"차이"를 일으키는 원인이 될 수있는 것에 대한 통찰력은 크게 감사하겠습니다!
아도 수레 생각하지 않았다, 좋은 지적입니다. 내 데이터 프레임은 실제로 문자열과 숫자가 혼합 된 보고서이므로 df - df2가 작동하지 않습니다. 잠재적 플로트 반올림 오류를 고려한 해결 방법이 있습니까? – Louis
이것이 나의 질문을 더 명확하게 정의한다면, 나의 데이터 프레임은 문자열, 숫자, 빈 (non)이 혼합되어있다. – Louis
오, 나는 문자열을 무시할 수있는 방법이 있는지 잘 모르겠습니다. 시도해 볼 수 있습니다 (df == df2). 어느 것이 다른지를 나타내는 True/False 값의 데이터 프레임을 반환합니다. 열에서 작동하는 .all() 또는 .count()를 사용하여이를 집계하면 문제가있는 곳을 좁힐 수 있습니다. –