프로그래밍 / / 2020. 3. 8. 18:44

[python] csv 데이터 특정행 선택 plot 그리기

728x90
반응형

파이썬에서 특정행 데이터만 뽑아 플롯으로 그리는 작업이다.
데이터는 csv 형태의 데이터이며, 문자열로 되어 있다.
그리고 4개의 행이 하나의 그룹으로 이루어져서 채널별로 반복되는 형태이다.


   Key Point

  •  csv read 데이터형태 와 데이터 형 이해 - .astype(float)
  • pandas data indexing 방법 - .iloc(row, column)
  • pandas plot 에서 데이터를 plot에 쌓는 행열 구분 - 열을 구분하여 데이터를 plot
  •  리스트, 데이터프레임, 배열 차이와 사용
# -*- coding: utf-8 -*-
"""
Created on Sun Mar  8 02:59:35 2020

@author: ceole
"""
"""
판다스에서는 열이 데이터 종류에 해당한다.
이러한 이유로 그래프를 그리면 열을 기준으로 하여 행을 쌓는다.

"""

from pandas import read_csv
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import csv

file = r'파일이름'
df = pd.read_csv(file, sep='\t', lineterminator='\r', skiprows =[0], encoding = 'utf-8')

1. 필요한 모듈 불러오기
2. 데이터 읽어오기 와 옵션
sep='\t' # 분리자 tab
lineterminator='\r' #라인끝 처리 \r
skiprows =[0] # 제외 행
encoding = 'utf-8' #인코딩 방식

idx = range(0, 36,4)
data = df.iloc[idx,:] #특정 행만 읽어오기
data = data.astype(float) #문자열을 float으로 형 변환
# data = data.T
r, c = data.shape #data 행열 크기 구하기

rNames = range(1, r+1)
cNames = range(1, c+1 )
data.index = rNames #행이름 지정
data.columns = cNames #열이름 지정

3. 특정행 인덱스 만들기
idx = range(0, 36,4) # 0행 부터 4 행씩 36행까지 인덱스 만들기 즉, 0, 4, 8, 12
4. pandas iloc 이용하여 특정행 데이터만 별도로 저장
data = df.iloc[idx,:] #특정 행만 읽어오기
5. 문자열 데이터를 float 데이터로 변환
data = data.astype(float)
6. 행열 크기를 구하여 행열 이름 만들기
7. csv 파일에 저장하여 데이터 확인
8. 행열을 바꾸기. 열 데이터를 이용하여 plot 을 그림
data = data.T  #T 는 Transpose 약자. 
9.plot 그리기
data.plot()
plt.show()

행열 전치

read_data_plot.py
0.00MB

728x90
반응형

'프로그래밍' 카테고리의 다른 글

DB] Connection string for DB using ODBC  (0) 2022.04.21
js]chart.js 사용하기  (0) 2022.02.03
[툴] VSCode - emmet 안될때  (0) 2022.01.19
FFT Analysis 문제점  (0) 2020.09.09
[참고]FFT  (0) 2020.09.08
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유