tsv 파일을 Pandas DataFrame에로드하는 방법?


136

저는 파이썬과 팬더를 처음 사용합니다. tsv파일을 pandas에로드 하려고합니다 DataFrame.

이것은 내가 시도하고 있고 내가 얻는 오류입니다.

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!

11
2017+ 이상에서이 답변을 받으려면을 사용하십시오 read_csv('path_to_file', sep='\t'). 아래 답변을
Ted Petrou

감사합니다 @TedPetrou
Salomon Kabongo

답변:


153

참고 : 17.0 기준 from_csv은 사용하지 않는 것이 좋습니다. pd.read_csv대신 사용하십시오.

설명서에는 원하는 것을 수행 하는 .from_csv 함수가 나열되어 있습니다.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t')

헤더가 있으면를 전달할 수 있습니다 header=0.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0)

4
이 방법과 관련하여 몇 가지 문제가있었습니다. 매우 느리고 색인 생성에 실패했습니다. 대신 read_table ()을 사용하여 추가 매개 변수없이 훨씬 빠르게 작동했습니다.
Yurik

21
17.0부터는 from_csv사용하지 않는 것이 좋습니다. pd.read_csv대신 사용하십시오!
rafaelvalle 님이

2
나는 다음을 사용해야했다 : DataFrame.read_csv ( 'filepath.tsv', sep = '', header = 0)
Archie

3
이것은 나쁜 대답입니다. 를 사용하여 TSV를 기본적으로 읽을 수 있습니다. pd.read_csv/read_table설정 delim_whitespace=True또는sep
smci

3
추가되지 통지를 @rafaelvalle
Arayan 싱에게

84

17.0 현재 from_csv권장하지 않습니다.

pd.read_csv(fpath, sep='\t')또는을 사용하십시오 pd.read_table(fpath).


4
참고 : read_table은 0.24.0 버전부터 사용되지 않습니다. 대신 pandas.read_csv ()를 사용하십시오.
ManuelSchneid3r

57

사용하십시오 read_table(filepath). 기본 구분 기호는 탭입니다


1
read_table에는 매개 변수가 필요하지 않습니다. 완벽하게 작동합니다.
Jay

19

이 시도

df = pd.read_csv("rating-data.tsv",sep='\t')
df.head()

여기에 이미지 설명을 입력하십시오

sep 매개 변수 를 수정해야합니다 .


7

파일을 열고 .csv로 저장 한 다음 적용

df = pd.read_csv('apps.csv', sep='\t')

다른 형식의 경우 sep 태그 만 변경하십시오.


0
df = pd.read_csv('filename.csv', sep='\t', header=0)

구분자와 헤더를 지정하여 tsv 파일을 팬더 데이터 프레임으로 직접로드 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.