Pandas의 텍스트 파일에서 데이터를로드하는 방법

  1. 텍스트 파일에서 데이터를로드하는read_csv()메소드
  2. 너비 형식의 텍스트 파일을 Pandas dataframe에로드하는read_fwf()메소드
  3. 텍스트 파일을 Pandas dataframe에로드하는read_table()메소드

Pandas dataframe을 사용하여txt 파일에서 데이터를로드하는 방법을 소개합니다. 사용 가능한 옵션도 살펴 보겠습니다.

먼저sample.txt라는 간단한 텍스트 파일을 만들고 파일에 다음 줄을 추가합니다.

45 apple orange banana mango
12 orange kiwi onion tomato

파이썬 스크립트가 실행될 곳과 같은 디렉토리에 저장해야합니다.

텍스트 파일에서 데이터를로드하는read_csv()메소드

read_csv()text 파일을 Pandas Dataframe으로 변환하는 가장 좋은 방법입니다. 위에서 만든 파일에 header가 없으므로header = None을 설정해야합니다. 빈 값을 NaN으로 바꾸려면 메소드 안에keep_default_na = False를 설정할 수도 있습니다.

예제 코드:

# python 3.x
import pandas as pd
df = pd.read_csv(
    'sample.txt', sep=" ",header=None)
print(df)

산출:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi   onion  tomato

값은 하나의 공백으로 구분되므로sep=" "를 설정합니다. 마찬가지로 쉼표로 구분 된 파일에서 데이터를 읽는 경우sep=","를 설정할 수 있습니다. sample.txt 안의 공백을,로 바꾸고sep=" "sep=","로 바꾼 후 코드를 실행하십시오.

Sample.txt

45,apple,orange,banana,mango
12,orange,kiwi,,tomato

암호:

# python 3.x
import pandas as pd
df = pd.read_csv(
    'sample.txt', sep=",",header=None)
print(df)

산출:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi     NaN  tomato

너비 형식의 텍스트 파일을 Pandas dataframe에로드하는read_fwf()메소드

read_fwf()는 너비 형식의 텍스트 파일을로드하는 데 매우 유용합니다. 우리는sep를 사용할 수 없습니다. 다른 값은 다른 구분자를 가질 수 있기 때문입니다. 다음 텍스트 파일을 고려하십시오.

Sample.txt

45 apple  orange banana mango
12 orange kiwi   onion  tomato

Sample.text에서delimiter는 모든 값에 대해 동일하지 않습니다. 그래서 read_fwf()는 여기서 일할 것입니다.

암호:

# python 3.x
import pandas as pd
df = pd.read_fwf(
    'sample.txt',header=None)
print(df)

산출:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi   onion  tomato

텍스트 파일을 Pandas dataframe에로드하는read_table()메소드

read_table()text 파일에서 Pandas dataframe으로 데이터를 load하는 또 다른 방법입니다.

Sample.txt:

45 apple orange banana mango
12 orange kiwi onion tomato

암호:

# python 3.x
import pandas as pd
df = pd.read_table(
    'sample.txt',header=None,sep=" ")
print(df)

산출:

    0       1       2       3       4
0  45   apple  orange  banana   mango
1  12  orange    kiwi   onion  tomato