Pandas : merge

안준모·2023년 11월 2일

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import torch

path_onnx = '/root/project/data/jmahn/train/onnx_result/inference/choser/metric_choser1280800.csv'
path_ori = '/root/project/hanza_HT/metric_choser/metric_v1100.csv'

특정 열 이름 바꾸기

dfx = pd.read_csv(path_onnx)

new_columns = {'Unnamed: 0': 'onnx'}
dfx = dfx.rename(columns=new_columns)

두 데이터 프레임 합치기

merge 함수는 다양한 flag가 있다.

dff = pd.merge(dfx, dfr, on = 'filename', suffixes=['_x', '_r'])

특정 열 삭제하기

dff = dff.drop('onnx', axis=1)

(예시) 데이터프레임 합치기

import pandas as pd
df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],
'value': [1, 2, 3, 5]})
df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'],
'value': [5, 6, 7, 8]}

df = pd.merge(df1, df2, left_on = 'lkey', right_on = 'rkey', suffixes = ['_left', '_right'])
print(df)

lkey  value_left rkey  value_right
0  foo           1  foo            5
1  foo           1  foo            8
2  foo           5  foo            5
3  foo           5  foo            8
4  bar           2  bar            6
5  baz           3  baz            7 

(예시) 공통된 원소에 대해서만 합치기

df1 = pd.DataFrame({'a': ['foo', 'bar'], 'b': [1, 2]})
df2 = pd.DataFrame({'a': ['foo', 'baz'], 'c': [3, 4]})
df1.merge(df2, how='inner', on='a')

a	b	c
0	foo	1	3

(예시) 모두 합치고 공통되는 원소만 정리

df1.merge(df2, how='left', on='a')

a	b	c
0	foo	1	3.0
1	bar	2	NaN

(예시) 합치고 cross 곱 정리

df1 = pd.DataFrame({'left': ['foo', 'bar']})
df2 = pd.DataFrame({'right': [7, 8]})
df1.merge(df2, how='cross')

      left	  right
0	   foo	      7
1	   foo	      8
2	   bar	      7
3	   bar	      8
profile
MLops 에 관심이 많습니다.

0개의 댓글