[2021.05.12] 인턴 +72 CSV 파일을 읽어오는 방법 (일부분 값 추출 방법도 포함)
<저장된 CSV 파일을 읽어오는 방법>
import pandas as pd
# csv file loading
data = pd.read_csv("C:\/python_file\/0512test_update_crawling.csv")
data # print문을 쓰면 못생기게 나옴, print문 생략할 것, 그리고 print문이 없을 땐 젤 마지막에 써야 값이 나옴
<실행결과>
자, 이제 인스타그램에서 크롤링해서 저장한 CSV 파일의 코드를 가져와서 필요한 부분을 추출해보자.
----------------------------------------------------------------------------------------------------------------
<소스코드>
# CSV 파일을 읽어온 후, 각 속성(닉네임,게시글 수,팔로워 수, 팔로잉 수를 저장하기 위한 함수 구현)
import pandas as pd
# -----------------------------CSV----------------------
# csv 파일의 값 중 닉네임 값 넣기 ---> OK 05.11.1820
# ★ for i in range(0,ㅁ,2): ㅁ 자리에, 엑셀파일을 열어서 행이 50이면 51을 적어줘야함. 행길이 적기
def csv_nickname_func():
arr = []
for i in range(0,8,2):
arr.append(data['닉네임'][i])
a = set(arr)
# Nonetype -> list로 변경하기 위해 새로운 배열 리스트를 만들고
# for 문으로 하나씩 추출하면서 새로운 배열에 저장해줌
test = []
for i in a :
test.append(i)
return test
# csv 파일의 값 중 게시글 수를 넣음 ----> OK 05.11 1820
def csv_notice_num_func():
# csv 파일의 값 중 게시글 수를 넣어서, 빈 리스트에 전부다 대입
test = []
for i in range(0,8,2):
try :
csv_notice_num = int(data['게시글 수'][i])
test.append(csv_notice_num)
test = set(test) # set을 이용하여 중복제거
test = list(test) # 인덱스 기능을 사용하기 위해 set -> list로 변환
except :
pass
return test
# csv 파일의 값 중 팔로워 수를 넣음 -----> OK 05.11.1820
def csv_followers_func():
# csv 파일의 값 중 닉네임 수를 넣어서, 빈 리스트에 전부다 대입
arr = []
for i in range(0,8,2):
try :
csv_followers = data['팔로워 수'][i]
csv_followers = csv_followers.replace(".0","") # "35000.0" -> "35000"
csv_followers = int(csv_followers) # "35000" -> 35000
arr.append(csv_followers)
arr = set(arr) # set을 이용하여 중복제거
arr = list(arr) # 인덱스 기능을 사용하기 위해 set -> list로 변환
except :
pass
return arr
# csv 파일의 값 중 팔로잉 수를 넣음 -------> OK 05.11 . 1820
def csv_followings_func():
test = []
for i in range(0,8,2):
test.append(data['팔로잉 수'][i])
# 중복 제거
test = set(test)
# "1.119" -> 1119 로 제거
a = [int(x.replace(',', '')) for x in test]
return a
# csv 파일의 값 중 팔로잉 수를 넣음 -------> OK 05.11 . 1820
def dashboard_func():
test = []
for i in range(0,8,2):
test.append(data['대쉬보드 내용'][i])
a = set(test)
# Nonetype -> list로 변경하기 위해 새로운 배열 리스트를 만들고
# for 문으로 하나씩 추출하면서 새로운 배열에 저장해줌
# Nonetype이 생기는 이유를 정확히 알음
# ★★★★★★--> 같은 변수명에 대입하지말고, 항상 새로운 변수에 대입 해 줄것 ★★★★★★
arr = []
for i in a :
arr.append(i)
return arr
# csv file loading
# skiprows = 2 로 앞에 csv 파일에 저장된 기본 인플루엔서 정보(닉네임,게시글 수 ,팔로워 수,팔로잉수, 대쉬보드내용 생략함)
# 왜냐하면 이 row들은 5행이지만, post 나 video_post를 다루는 컬럼은 8행이기때문임. 그래서 맞춰줘야하는데 생략으로 pass
data = pd.read_csv("C:\/python_file\/20210512_153547_instargram.csv")
nickname = csv_nickname_func()
notice = csv_notice_num_func()
followers = csv_followers_func()
followings = csv_followings_func()
dashboard = dashboard_func()
# 첫 row에 있는, 닉네임, 게시글 수 , 팔로워 수, 팔로잉 수, 대쉬보드 내용과 비교하기 위해 인덱스로 첫 row행 데이터를 추출함
data_nickname = data['닉네임'][0]
data_notice = data['게시글 수'][0]
data_followers = data['팔로워 수'][0]
data_followings = data['팔로잉 수'][0]
data_dashboard = data['대쉬보드 내용'][0]
yesterday_dashboard = []
yesterday_dashboard.append(data_nickname)
yesterday_dashboard.append(data_notice)
yesterday_dashboard.append(data_followers)
yesterday_dashboard.append(data_followings)
yesterday_dashboard.append(data_dashboard)
print("\n###CSV 파일에 저장된 대쉬보드 값 출력###")
print(yesterday_dashboard)
print(data)
---------------------------------------------------------------------------------------------------------------
<실행결과>
-> 위의 코드가 바로 필요한 부분을 인덱싱 해서, 저장 후 출력한 모습
-> 형광색은 csv 파일을 그냥 읽어온 것
----------------------------------------------------------------------------------------------------
* CSV 파일을 읽어와서 필요한 컬럼의 값을 추출하는 방법은?
★★★★★ data['컬럼'][원하는 값 인덱스] ★★★★★
import pandas as pd
# csv file loading
data = pd.read_csv("C:\/python_file\/20210512_153547_instargram.csv")
* 아래의 코드는 이해를 돕기위해 가져옴 *
data_nickname = data['닉네임'][0]
data_notice = data['게시글 수'][0]
data_followers = data['팔로워 수'][0]
data_followings = data['팔로잉 수'][0]
data_dashboard = data['대쉬보드 내용'][0]
--------------------------------------------------------------------------------------------------
* 해당 크롤링 파일을 실행하기 위해선?
1. 0512_1500 3_post 최종구현.ipynb 파일을 jupyter로 열음
-> 인플루언서의 정보 및 게시글3개(답글,좋아요수,좋아요 누른사람) 등등 CSV로 변환
2. 0512_1500 [최종] - CSV 파일을 읽어와서 내용 비교.ipynb 파일을 jupyter로 열음
* 코드가 2개로 나눠져있는데, 위의 코드가 csv 파일 읽어오기
2-1. csv 파일을 읽어오는 path 부분을 1번에서 저장했던.CSV로 지정
2-2. 그런후에 실행하면 CSV 파일을 읽어옴
* 밑에코드가 csv 파일과 오늘 인플루언서 정보 비교하기임
3.->2번을 실행 후, 그런다음에 실행
댓글