728x90

 

01_olive.csv
다운로드

 

 

파이썬(python) csv파일 읽어오기,쓰기 (FIle I.O), pandas

 

 

pandas를 이용하여 csv파일을 읽어와서

변수명 변경및 생략등으로 데이터를 처리한뒤

다시 csv로 저장하는 방법을 알아보겠습니다.

 

먼저 pandas를 사용하기위해 import를 하겠습니다.

 

#pandas import

import pandas as pd

 

그다음 csv파일이 저장되어있는 경로를 testCSV_path로 넣어준뒤

pd.read_csv를 이용하여 ilive_oil에 저장해 줍니다.

csv파일은 첨부파일로 올렸습니다.

 

 

#읽어온후 저장

testCSV_path = "C:\\Users\\acorn\\Desktop\\python2\\sampledata\\01_olive.csv"

olive_oil = pd.read_csv(testCSV_path)

 

 

 

#상위 3줄 출력

olive_oil.head(3) #결과

 

 

 

다음은 csv를 불러올때 맨 윗열을 컬럼명으로 쓰는데

컬럼명을 안쓰고 맨위파일을 value로 넣고싶으면 header=None을 써주면 됩니다.

 

olive_oil = pd.read_csv(testCSV_path,header=None) #컬럼이름이 value로 들어가버림
olive_oil.head(3) #결과

 

 

다음은 컬럼명을 바꿔주는 코드입니다.

 

olive_oil.columns[0]:"id_area로 0번째 컬럼명을 id_area로 바꿔주는것 입니다.

 

olive_oil.rename(columns = {olive_oil.columns[0]:"id_area"},inplace=True) #컬럼명 변경
olive_oil.head(3)

 

 

 

 

 

다음 방법으로 변수명을 입력해 줄수도 있는데, 칼럼갯수랑 맞춰서 names에 입력을 해줘야

각각 칼럼에 맞게 들어갑니다.

밑에 예시는 컬럼명과 names 갯수가 안맞을 경우입니다.

 

 

 

olive_oli = pd.read_csv(testCSV_path, names=["a","b","c","d"]) #칼럼이랑 갯수 맞춰서 해줘야됨
olive_oli.head(3)

 

 

 

 

마지막으로 변경한 csv파일을 해당 경로에 저장해주는 코드입니다.

" " 안에 저장하고 싶은 경로를 넣어주면 됩니다.

 

#출력하기 ,csv파일로 저장
olive_oil.to_csv("C:\\Users\\acorn\\Desktop\\python2\\sampledata\\olive.csv")

 

 

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

728x90

딕셔너리 자료형

 

딕셔너리는 해석그대로 사전이라는 뜻입니다.

사전을 보면 한단어와 그에 맞는 뜻으로 이루워져 있습니다.

딕셔너리 자료형에서는 이 한단어를 key라고하고 그에 맞는 뜻을 value라고 하여 key값을 통해 value값을 얻는 것입니다.

key와 value는 1:1 대응관계입니다.

 

리스트에서는 인덱스값을 통해 접근을 했었는데, 딕셔너리에서는 key값을 통해 value값을 얻는게 큰 특징입니다.

 

먼저 딕셔너리만드는 법입니다.

 

#딕셔너리 생성

my_info = {'name' : 'hong', 'age' : ' 19', 'address':'seoul'}

다음과 같이 전체를 { }로 묶어주고 key와 value갑은 : 로 나눠줍니다.

 

a = {1:1}

과 같이 int형으로 선언도 가능하고

 

b = {'a':[1,2,3]}

과 같이 리스트도 가능합니다.

 

#딕셔너리 추가하기

 

딕셔너리 my_info에 새로운정보 job을 추가하는 방법입니다.

my_info['job'] = 'student'  

을 입력하면 my_info에 'job':'student'가 추가된걸 확인할 수 있습니다.

 

#딕셔너리 삭제하기

 

my_info에서 key값이 age인것을 삭제하는 방법입니다.

del my_info['age']

을 입력한뒤 확인해보면 age:19가 삭제된걸 확인할 수 있습니다.

 

#딕셔너리에서 key값을 사용해 value값 얻기

 

my_info = {'name' : 'hong', 'age' : ' 19', 'address':'seoul'}

print(my_info['name']) # 결과값 = 'hong'

print(my_info['age]) # 결과값 = 19

728x90

파이썬에서 리스트는 JAVA나 C처럼 배열을 생성하여 인덱스값으로 접근 할 수 있는 자료형입니다.

리스트생성과 인덱스를 통한 접근, 슬라이싱에 대한 소스입니다.

인덱스 주소는 java와 c처럼 0부터 시작입니다.

 

리스트 생성

odd = [1,3,5,7,9] # 리스트생성

odd #리스트 출력

 

이중 리스트 생성

a = [1,2,3,['a','b','c']]

a[3][1] #a의 'b' 인덱싱

 

삼중리스트 인덱싱
a = [1,2,['a','b',['Life','is']]]
a[2][2][0] # 결과값 = 'Life'

 

리스트 슬라이싱

슬라이싱이란 리스트의 특정부분을 잘라내는 작업입니다.

 

리스트 슬라이싱
a = [1,2,3,4,5]
b = a[:2] # 처음부[2-1]까지 b에 삽입하는 코드인데 조심해야 할점은 a[2]까지가 아니고 a[2-1]까지 접근한다는 점이다.
c = a[2:] #a[2]부터 마지막까지

 

리스트 더하기
a = [1,2,3]
b = [4,5,6]
a + b #결과값 = [1,2,3,4,5,6]

 

리스트 반복하기
a = [1,2,3]
a * 3 #결과값 = [1,2,3,1,2,3,1,2,3]

 

리스트에서 하나의 값 수정하기
a = [1,2,3]
a[2] = 4 #2번 주소에 있는 값을 4로 수정
a #결과값 = [1,2,4]

 

리스트에 요소 추가(append)
a = [1,2,3]
a.append(4)
a #결과값 [1,2,3,4]

 

정렬시키기

a = [1,4,2,3]
a.sort() #리스트a를 오름차순 정렬
a

 

인데스값 찾기

a = [1,2,3]
a.index(3) #결과값 = 2, 3의 인덱스값을 알려줌

 

리스트 요소 제거(remove)
a = [1,2,3,1,2,3]
a.remove(3) #첫번째 3만 제거됨, 한번 더 실행하면 다시 3이 삭제
a #결과값 = [1,2,1,2,3]

 

 

리스트 요소 끄집어내기(pop)
a = [1,2,3]
print(a.pop())  #맨 마지막 요소만 끄집어내고 너머지만 남김.
a

 

리스트에 포함된 요소 x의 개수 세기(count)
a = [1,2,3,1,6]
a.count(1) # 결과값 = 2 , 1의 갯수

 

리스트 확장(extend)
a = [1,2,3]
a.extend([4,5])
print(a) # 결과값 = [1, 2, 3, 4, 5]
b = [6,7]
a.extend(b)
a #결과값 = [1, 2, 3, 4, 5, 6, 7]

728x90

데이터파일을 usb에 넣거나 클라우드에 잇는 파일들을 다운받아 사용하려면 귀찮을때가 많은데

구글시트를 R에서 연동을하면 따로 다운로드를 받지 않고 바로 사용할수 있는 패키지입니다.

 

실행시키면 콘솔창에 url이 뜨는데 그 url을 복사해서 들어간다음에

로그인하고 google이 주는 key값을 콘솔에 입력하면

연동이 됩니다.

 


install.packages('googlesheets')

library(googlesheets)
library(dplyr)

########################################
#함수로 만든 google sheet불러오기
########################################

library(googlesheets)
library(dplyr)
read.gs <- function(x,ws=1){
  allpack <- c("devtools", "ggplot2", "rJava", "XLConnect", "reshape2", "dplyr", "plyr", "gdata", "readr", "tools", "tcltk", "svDialogs", "stringr", "extrafont")
 
  newpack <- setdiff(allpack, rownames(installed.packages())) # 없는 패키지 추출
  
  if (length(newpack) > 0) { # newpack의 패키지를 설치, 없으면 통과
    install.packages(newpack)
  }
  
  # 필수 패키지 모두 라이브러리로 등록
  for(i in allpack){
    require(i, character.only = TRUE) # character.only : 객체로 취급하지 않고, 문자로 취급
  }
 
 
       x<-gs_ls(x)[1,1] %>%
        as.character() %>%
        gs_title() %>%
        gs_read(ws = ws) %>%
        as.data.frame() #%>%
   
  
    attributes(x)$spec <- NULL
    return(x)
    }

bb.df <-read.gs("example_kbo2015.") #이부분에서 ""안에 파일명을 쓰면됩니다.

                                                 #풀네임을 안쳐도 구분가능한 정도까지만 쓰면 가져올수 있습니다.
str(bb.df)
x
### 구분된(콤마나 탭으로) 데이터 업로드 하기
iris %>%
  head(5) %>%
  write.csv("iris.csv", row.names = FALSE)

iris_ss <- gs_upload("iris.csv")

iris.gs <- gs_read(iris.ss)

file.remove("iris.csv")

# 등록코드 지우기 (작업디렉토리에 있음!)
#Files에 .httr-oauth 지우기
## 해당 패키지 지우고 언로드 하기
remove.packages('googlesheets')
unloadNamespace("googlesheets")

 

+ Recent posts