>source

여러 개의 .csv 파일을 하나로 모으는 프로그램이 있습니다. 동일한 구조의 3 개의 파일 (열 수 및 이름)을 추가하면 3 개의 파일이 총 1154341 줄에 결합되었음을 알리는 성공 메시지가 전달됩니다. 동일한 구조의 다른 파일을 추가하면 메시지가 4 개의 파일과 1446553 행으로 업데이트됩니다. 여태까지는 그런대로 잘됐다. 팬더를 사용하여 팬더를 사용하면 (pd.read_csv (file.csv)) 두 파일의 크기가 동일하며 파일 크기가 작습니다. 단일 열을 분석 할 때 두 데이터 프레임의 인덱스 차이를 확인하십시오.

#Union of 3 .csv files
 >>>df_reembolsos_1['ideCadastro']
 0               NaN
 1               NaN
 2               NaN
 ...................
 1154338    195997.0
 1154339    195997.0
 Name: ideCadastro, Length: 1154339, dtype: float64

 # Union of 4 .csv file
 >>> df_reembolsos_2['ideCadastro]
 0               NaN
 1               NaN
 2               NaN
 ...................
 1446550    195997
 1446551    195997
 Name: ideCadastro, Length: 1154339, dtype: object

첫 번째 파일을 읽을 때 인덱스 수는 크기와 같지만 두 번째 시나리오에서는 인덱스 수가 크기보다 큽니다. 두 파일을 살펴 봤는데 실제로는 다르며 다른 파일 번호를 결합 할 것으로 예상되는 크기를 가지고 있습니다. 큰 파일을 읽을 때 다음과 같은 경고 메시지가 나타납니다.

DtypeWarning: Columns (1,2,3,4,5,8,10,11,12,13,15,22,23,28) have mixed types.

작은 파일을 읽을 때이 메시지는 열 번호 1 만 나타냅니다. 따라서이 문제가 팬더의 한계인지 또는 데이터에 문제가 있는지, 어떻게 해결할 수 있는지 궁금합니다.


  • 답변 # 1

    이 훌륭한 답변은 DtypeWarning을 매우 철저히 다루고 있습니다. 읽을 때 Dtype을 지정하십시오.

    색인이 예상치 못한 크기 인 경우 :

      추가하면 색인을 무시할 수 있습니다.

      읽으면 .read_csv 를 사용할 수 있습니다  kwarg index_col  - pandas 가 제대로 해석하지 못하는 경우  범인이 될 수 있습니다.

      와이즈 비즈 확인  빈 행이 많지 않은 정확한 행 수를 실제로 읽고 있습니다.

      read_csv

관련 자료

  • 이전 sql server - JOIN의 ON 절 안에 Count가있는 경우
  • 다음 javascript - Vue를 init에서 자동 인스턴스화하는 방법은 무엇입니까?