Appia의 IT세상

파이썬[Python] Pandas, CSV파일 불려오기, 내보내기 본문

Python/Python Pandas

파이썬[Python] Pandas, CSV파일 불려오기, 내보내기

Appia 2020. 4. 24. 07:38
반응형

이번 포스팅에서는 실제 많은 데이터를 관리하는 엑셀 또는 CSV 파일 형태에서 Pandas DataFrame으로 바로 가져오는 방법을 알아보고자 합니다. 실제 많은 데이터들이 CSV 형태로 되어 있다 보니, 파일 불러오기 등을 활용해서 불러 오는 경우도 많습니다. 하지만, 이럴 경우 열이 끝나는 곳까지 루프를 돌려야 하고, 또한 여러가지로 복잡합니다.

 

CSV파일 DataFrame으로 가져오기 

그래서 Pandas에서 제공하는 부분을 활용해서 한번 CSV파일을 바탕으로 DataFrame 생성하는 방법에 대해서 살펴보고자 합니다. 먼저 그럼 다음 데이터를 바탕으로 진행을 해보겠습니다. 

 

예시로 사용할 데이터 

혹 저의 코드를 따라 하실 분들을 위해서, 위의 파일또한 다음과 같이 첨부드립니다. 

Data_example.csv
0.00MB

그럼 이제부터는 한번 파일을 가지고 작업을 진행해보도록 하겠습니다. 

 

Pandas에서 CSV 파일을 읽어올 때 사용하는 명령어는 read_csv(file)입니다. 그럼 예시를 보면서 다시 한번 살펴보도록 하겠습니다. 

example)

import pandas as pd

data = pd.read_csv(r"Data_example.csv")

print(data)

result) 

  Signal Name Direction      Target  Signal Value
  
0   VehSpeed1        Tx  Component1          10.4

1   VehSpeed2        Tx  Component1          10.3

2   VehSpeed3        Rx  Component1          12.0

3   VehSpeed4        Tx  Component1          13.1

4   VehSpeed5        Tx  Component2           9.4

5   VehSpeed6        Tx  Component2           8.4

6   VehSpeed7        Rx  Component2           3.9

7   VehSpeed8        Tx  Component2           7.1

8   VehSpeed9        Tx  Component2           7.5

9  VehSpeed10        Tx  Component2           4.3

그럼 여기에서 만약 특정 column만 선택해서 가져오고 싶으시다면 일단 위의 부분을 토대로 읽어오고, 그 데이터에서 특정 column을 바탕으로 DataFrame을 재생성해야 합니다. 다음 예시를 한번 살펴보겠습니다. 

example) 

import pandas as pd

data = pd.read_csv(r"Data_example.csv")	#CSV 파일 불러오기 

selectdata = pd.DataFrame(data, columns=['Signal Name', 'Signal Value', "Targets"]) #특정컬럼선택

print(selectdata)

result) 

  Signal Name  Signal Value  Targets

0   VehSpeed1          10.4      NaN

1   VehSpeed2          10.3      NaN

2   VehSpeed3          12.0      NaN

3   VehSpeed4          13.1      NaN

4   VehSpeed5           9.4      NaN

5   VehSpeed6           8.4      NaN

6   VehSpeed7           3.9      NaN

7   VehSpeed8           7.1      NaN

8   VehSpeed9           7.5      NaN

9  VehSpeed10           4.3      NaN

제가 일부로 Target을 Targets으로 명시했더니, 모든 값이 NaN으로 표시가 됩니다. 만약 Column에서 선택을 하신다면 각 데이터에 대한 Column 이름을 잘 확인하셔야 합니다. 

 

DataFrame을 CSV파일로 내보내기

물론 위에서 CSV 파일을 읽어왔다면 이번에는 CSV 파일로 내보내는 방법에 대해서 살펴보고자 합니다. 관련해서는 간단하게 예전에 Numpy 데이터를 CSV 파일 형태로 내보내는 방법에 대해서 이야기 하면서 살펴봤습니다만, 다시 한번 이야기 해보겠습니다. 

example)

import pandas as pd

data = pd.read_csv(r"Data_example.csv")

selectdata = pd.DataFrame(data, columns=['Signal Name', 'Signal Value', "Target"])

selectdata.to_csv(r"C:\Users\Bens\Desktop\V1\Modified_data.csv")

 

이와 같이 코드를 실행해보면 다음과 같은 결과가 나옵니다. 

예제 코드 실행 결과 

안보이던 인덱스가 생겼죠? 

관련해서 없애는 부분은 to_csv의 인자로 index=False 부분을 추가해주시면 됩니다. 

 

오늘은 간단히 CSV파일을 DataFrame으로 가져오고, DataFrame을 CSV파일로 추출하는 방법에 대해서 살펴봤습니다. 생각보다는 간단하고, 다양하게 활용할수 있습니다. 도움이 되셨으면 좋겠습니다. 혹 궁금하신거나 문의 사항 있으시면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 감사합니다. 

 

반응형
Comments