팬더로 txt에서 데이터로드


159

float 및 문자열 데이터가 혼합 된 txt 파일을로드하고 있습니다. 각 요소에 액세스 할 수있는 배열에 저장하고 싶습니다. 지금 난 그냥

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

입력 파일의 구조는 다음과 같습니다 1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt..

이제 데이터를 고유 한 열로 가져옵니다. 다른 요소를 별도로 저장하기 위해 어떻게 나눌 수 data[i,j]있습니까 (그래서 전화 할 수 있습니까)? 헤더를 어떻게 정의 할 수 있습니까?

답변:


217

당신이 사용할 수있는:

data = pd.read_csv('output_list.txt', sep=" ", header=None)
data.columns = ["a", "b", "c", "etc."]

sep=" "따옴표 사이에 공백을 남기고 코드를 추가하십시오 . 따라서 팬더는 값 사이의 공백을 감지하고 열로 정렬 할 수 있습니다. 데이터 열은 열의 이름을 지정하기위한 것입니다.


감사! 테이블 요소에 어떻게 액세스 할 수 있습니까?
albus_c

열을 호출하려면 열 이름을 "a"로 지정한 경우 data.a를 사용하십시오.
pietrovismara

1
또는 단일 행을 호출하려는 경우 data.a [1] (이 예에서는 열의 첫 번째 행을 호출 함)를 사용할 수 있습니다.
pietrovismara

큰! 그 고정 모든
albus_c

87

위의 답변에 추가하고 싶습니다. 직접 사용할 수 있습니다.

df = pd.read_fwf('output_list.txt')

fwf는 고정 너비 형식의 줄을 나타냅니다.


38

@ Pietrovismara의 솔루션은 정확하지만 추가하고 싶습니다. 열 이름을 추가하는 별도의 줄이 아닌 pd.read_csv 에서이 작업을 수행 할 수 있습니다.

df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])


13

데이터에 할당 된 인덱스가없고 간격이 무엇인지 확실하지 않은 경우 팬더가 인덱스를 할당하고 여러 공간을 찾도록 할 수 있습니다.

df = pd.read_csv('filename.txt', delimiter= '\s+', index_col=False)

3
마찬가지로 구분 기호 delim_whitespace=True대신 더 자세한 인수 를 지정할 수 있습니다.'\s+'
ALollz

8

당신은 다음과 같이 할 수 있습니다 :

import pandas as pd
df = pd.read_csv('file_location\filename.txt', delimiter = "\t")

(예 : df = pd.read_csv ( 'F : \ Desktop \ ds \ text.txt', 구분 기호 = "\ t")


6

팬더의 최신 변경 사항을 기반으로 read_csv를 사용할 수 있으며 read_table은 더 이상 사용되지 않습니다.

import pandas as pd
pd.read_csv("file.txt", sep = "\t")

4

read_table 명령을 사용하여 텍스트 파일을 가져올 수 있습니다.

import pandas as pd
df=pd.read_table('output_list.txt',header=None)

로드 후 전처리를 수행해야합니다.


1

일반적으로 데이터를 먼저 보거나 가져 오려고 시도하고 data.head ()를 수행하십시오. 열이 \ t로 구분되어 있으면 sep="\t"달리 지정해야합니다 sep = " ".

import pandas as pd     
data = pd.read_csv('data.txt', sep=" ", header=None)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.