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)