1. Youtube 데이터 수집 목적
- Youtube 댓글 분석, 감정 분석 등을 위한 전체 데이터 수집 작업 진행.
- 여러 개의 CSV 파일로 나누어진 데이터를 하나의 데이터프레임으로 통합.
2. 데이터 수집 방법
import os
import pandas as pd
# 1. 경로 지정
path = r'C:\Users\1\Downloads\additional_data'
# 2. 폴더 안 파일 리스트 가져오기
files = os.listdir(path)
# 3. result 리스트에 csv 파일만 모으기
result = []
for file in files:
if '.csv' in file:
result.append(file)
# 4. 빈 데이터프레임 준비
full_df = pd.DataFrame()
# 5. result 리스트 안 csv 파일들 읽어서 합치기
for file in result:
current_df = pd.read_csv(
path + '/' + file,
encoding='iso-8859-1', # 인코딩 문제 방지
on_bad_lines='skip' # 깨진 줄 무시
)
full_df = pd.concat([full_df, current_df], ignore_index=True)
# 6. 최종 데이터프레임 크기 확인
print(full_df.shape)
(1) 폴더 내 CSV 파일 목록 가져오기
- os.listdir() 함수를 사용하여 특정 폴더 안의 파일 목록을 가져온다.
import os
path = r'C:\Users\1\Downloads\additional_data' # 데이터가 저장된 폴더 경로
files = os.listdir(path) # 폴더 안 파일 리스트 가져오기
(2) CSV 파일만 선별
- .csv가 포함된 파일만 리스트로 따로 모은다.
result = []
for file in files:
if '.csv' in file:
result.append(file)
폴더 안에 텍스트 파일, 엑셀 파일 등이 섞여 있을 수 있으므로 .csv 확장자가 포함된 파일만 골라낸다.
3. 데이터 통합 과정
(1) 빈 데이터프레임 생성
- 여러 파일을 이어붙일 그릇을 미리 준비한다.
import pandas as pd
full_df = pd.DataFrame()
(2) 파일별 데이터 읽고 합치기
- 각 CSV 파일을 읽어서 하나의 데이터프레임에 통합한다.
for file in result:
current_df = pd.read_csv(
path + '/' + file,
encoding='iso-8859-1', # 인코딩 문제 방지
on_bad_lines='skip' # 깨진 줄 무시
)
full_df = pd.concat([full_df, current_df], ignore_index=True)
- encoding='iso-8859-1'로 인코딩 에러 방지
- on_bad_lines='skip'으로 파일 안 깨진 줄 무시하고 읽기
- pd.concat()을 사용해 행(row) 방향으로 파일들을 하나로 합친다
- ignore_index=True로 합칠 때 인덱스를 새로 부여
pd.concat이란?
→ 여러 개의 데이터프레임을 "붙여서" 하나로 만드는 함수야
- 네가 폴더에 있는 여러 개의 엑셀 파일(CSV 파일)을
- 파일 하나 = 데이터프레임 하나로 읽어
- 그 데이터프레임들을
- 위아래로, 줄(row)을 이어붙여서
- 하나의 큰 표(데이터프레임)를 만드는 거야.
→ '한 줄'로 붙이는 게 아니라 '수직(아래로)' 쌓는 것!
데이터프레임(DataFrame)이란?
→ 표 형태(엑셀처럼)로 데이터를 다루는 구조야.
- 행(row): 한 줄 한 줄 (한 개 데이터)
- 열(column): 항목(특성, 속성)
→ 엑셀 스프레드시트처럼 생긴 거야.
쉽게 비유하면
- CSV 파일은 텍스트 파일이야. (컴퓨터 입장에서 그냥 글자 모음)
- 데이터프레임은 그걸 엑셀 표처럼 다루게 해주는 거야.
즉, 데이터프레임 = "엑셀처럼 다룰 수 있게 만든 데이터 구조"
4. 데이터 통합 결과
print(full_df.shape)
결과 예시:
(375942, 16)
375,942개의 행(row), 16개의 열(column)을 가진 하나의 큰 데이터프레임이 만들어졌다는 의미.
🔥 요약
- Youtube 관련 추가 데이터 파일들을 모두 모아 하나의 커다란 데이터프레임으로 통합하는 작업
- 추후 이 데이터프레임을 활용하여 이모지 분석, 워드클라우드 생성, 감정 분석 등을 수행할 예정
'Tableau > Text Data Analysis (Youtube Case-study)' 카테고리의 다른 글
Analyze whether audience is engaged or not (0) | 2025.04.29 |
---|---|
Analyze the Most Liked Category (0) | 2025.04.28 |
Emoji's Analysis (0) | 2025.04.27 |
Word Cloud Analysis (0) | 2025.04.27 |
감정 분석 (Sentiment Analysis) (0) | 2025.04.26 |