pandas

전처리 데이터로 그래프 만들기 2

gggg21 2024. 11. 25. 09:18

1. 파일 이름 가져오기

Python의 os 모듈을 사용해 파일 이름을 가져올 수 있습니다.

import os
import pandas as pd

# 파일 경로 설정
file_path = "data/sample_file.csv"

# 파일 이름만 추출
file_name = os.path.basename(file_path).split('.')[0]

 

2. 데이터 읽기 및 파일 이름 컬럼 추가

파일에서 데이터를 읽어온 뒤, 컬럼으로 파일 이름을 추가합니다.

# CSV 파일 읽기
df = pd.read_csv(file_path)

# 파일 이름을 새로운 컬럼으로 추가
df["file_name"] = file_name

print(df)

 

3. 여러 파일 처리하기 (딕셔너리 활용)

여러 파일을 처리하면서 파일 이름을 Key로 사용하려면 딕셔너리를 활용할 수 있습니다.

# 파일 리스트 (예시)
file_list = ["data/file1.csv", "data/file2.csv"]

# 파일 이름을 Key로 사용하는 딕셔너리 생성
dataframes = {}

for file in file_list:
    file_name = os.path.basename(file).split('.')[0]
    dataframes[file_name] = pd.read_csv(file)

# 딕셔너리 사용 예시
for key, df in dataframes.items():
    print(f"Data from {key}:")
    print(df.head())

 

4. 데이터프레임에 파일 이름 컬럼을 추가하면서 병합

모든 데이터를 하나의 데이터프레임으로 병합하려면 아래처럼 처리할 수 있습니다.

all_data = []

for file in file_list:
    file_name = os.path.basename(file).split('.')[0]
    df = pd.read_csv(file)
    df["file_name"] = file_name
    all_data.append(df)

# 병합된 데이터프레임 생성
merged_df = pd.concat(all_data, ignore_index=True)

print(merged_df)

 

요약

  • os.path.basename: 파일 이름 추출
  • split(): 확장자 제거
  • pd.concat: 데이터프레임 병합
  • 딕셔너리: 여러 파일을 Key-Value 구조로 관리

이 방법을 활용하면 파일 이름을 Key로 데이터프레임을 관리하거나 컬럼으로 추가할 수 있습니다. 필요한 방식에 따라 코드를 수정하면 됩니다.

 

 

1. merge()로 중복된 값을 병합

merge()는 두 데이터프레임을 특정 키(열)를 기준으로 병합합니다.

  • 중복된 키가 있다면 Cartesian Product(모든 조합)를 생성합니다.
  • 필요에 따라 중복 값을 병합하거나 다르게 처리할 수 있습니다.
import pandas as pd

df1 = pd.DataFrame({
    "ID": [1, 2, 3],
    "Name": ["Alice", "Bob", "Charlie"]
})

df2 = pd.DataFrame({
    "ID": [1, 1, 2],
    "Value": [100, 200, 300]
})

# 'ID'를 기준으로 병합
merged_df = pd.merge(df1, df2, on="ID", how="inner")

print(merged_df)