[PYTHON] 판다를 사용하여 행당 다른 수의 열로 CSV 가져 오기
PYTHON판다를 사용하여 행당 다른 수의 열로 CSV 가져 오기
Pandas 또는 CSV 모듈을 사용하여 각 행에 대해 다른 수의 열을 가진 CSV를 Pandas DataFrame으로 가져 오는 최상의 방법은 무엇입니까?
"H","BBB","D","Ajxxx Dxxxs"
"R","1","QH","DTR"," "," ","spxxt rixxls, raxxxd","1"
이 코드 사용 :
import pandas as pd
data = pd.read_csv("smallsample.txt",header = None)
다음 오류가 생성됩니다.
Error tokenizing data. C error: Expected 4 fields in line 2, saw 8
해결법
-
==============================
1.read_csv ()에서 열 이름 목록을 제공하면 트릭을 수행해야합니다.
read_csv ()에서 열 이름 목록을 제공하면 트릭을 수행해야합니다.
예 : 이름 = [ 'a', 'b', 'c', 'd', 'e']
https://github.com/pydata/pandas/issues/2981
편집 : 열 이름을 제공하지 않으려면 Nicholas가 제안한 것을 수행하십시오.
-
==============================
2.우리는 pd.read_table () 메서드를 사용하여 csv 파일을 읽을 수도 있습니다.이 파일은 단일 열의 DataFrame 유형으로 변환되며 ','
우리는 pd.read_table () 메서드를 사용하여 csv 파일을 읽을 수도 있습니다.이 파일은 단일 열의 DataFrame 유형으로 변환되며 ','
-
==============================
3.간단한 카운터 (0, 1, 2 등)로 동적으로 열 이름을 생성 할 수 있습니다.
간단한 카운터 (0, 1, 2 등)로 동적으로 열 이름을 생성 할 수 있습니다.
동적으로 열 이름 생성
# Input data_file = "smallsample.txt" # Delimiter data_file_delimiter = ',' # The max column count a line in the file could have largest_column_count = 0 # Loop the data lines with open(data_file, 'r') as temp_f: # Read the lines lines = temp_f.readlines() for l in lines: # Count the column count for the current line column_count = len(l.split(data_file_delimiter)) + 1 # Set the new most column count largest_column_count = column_count if largest_column_count < column_count else largest_column_count # Close file temp_f.close() # Generate column names (will be 0, 1, 2, ..., largest_column_count - 1) column_names = [i for i in range(0, largest_column_count)] # Read csv df = pandas.read_csv(data_file, header=None, delimiter=data_file_delimiter, names=column_names) # print(df)
누락 된 값은 CSV 행에 값이없는 열에 지정됩니다.
from https://stackoverflow.com/questions/27020216/import-csv-with-different-number-of-columns-per-row-using-pandas by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 행렬 차원을 보존하면서 numpy 배열을 직렬화하려면 어떻게해야합니까? (0) | 2018.11.14 |
---|---|
[PYTHON] Python pandas to_excel 'utf8'코덱에서 바이트를 디코딩 할 수 없습니다. (0) | 2018.11.14 |
[PYTHON] 파이썬 패키지 내부에서 (정적 인) 파일을 읽는 방법? (0) | 2018.11.14 |
[PYTHON] 마샬링 덤프가 더 빨라지고 cPickle이 더 빨리로드됩니다. (0) | 2018.11.14 |
[PYTHON] Miniconda에 Jupyter Notebook을 설치하십시오. (0) | 2018.11.14 |