목록랭귀지/pandas (83)
아미(아름다운미소)
import pandas as pd# DataFrame 생성data = { 'key': ['A', 'B', 'A', 'B', 'C'], 'value': [1, 2, 3, 4, 5]}df = pd.DataFrame(data)# 'key'로 그룹화하고 'value' 컬럼의 합계 계산grouped_sum = df.groupby('key')['value'].sum().reset_index()grouped_sum.rename(columns={'value': 'total_value'}, inplace=True)# 결과:# key total_value# 0 A 4# 1 B 6# 2 C 5# 원래 DataFrame과 그룹화된 합계를 ..
import pandas as pd# 예제 데이터 생성data = { 'a': ['A', 'A', 'B', 'B', 'C', 'C'], 'b': [1, 1, 2, 2, 3, 3], 'c': [10, 10, 20, 20, 30, 30], 'd': [100, 100, 200, 200, 300, 300], 'e': [5, 10, 15, 20, 25, 30], 'f': [30, 40, 50, 60, 70, 80]}df = pd.DataFrame(data)# a, b, c, d로 그룹화하고 e의 합계 계산grouped = df.groupby(['a', 'b', 'c', 'd'])['e'].sum().reset_index()# f - e 계산grouped['f - e'] = df.g..
import pandas as pd# 예시 DataFrame 생성data = { 'a': ['A', 'A', 'B', 'B', 'C'], 'b': [1, 1, 2, 2, 3], 'c': [5, 5, 6, 6, 7], 'd': [10, 20, 10, 30, 40], 'e': [5, 15, 5, 25, 35]}df = pd.DataFrame(data)# 그룹화하여 e 컬럼의 합계 계산grouped = df.groupby(['a', 'b', 'c'])['e'].sum().reset_index()# e와 d 비교 후 (e - d) 계산grouped['d'] = df.groupby(['a', 'b', 'c'])['d'].first().values # d 값을 가져옴grouped['di..
import pandas as pdimport numpy as np# 예제 데이터 생성data = { 'a': ['A', 'A', 'B', 'B', 'C', 'C'], 'b': [1, 1, 2, 2, 3, 3], 'c': [5, 5, 6, 6, 7, 7], 'd': [10, 20, 30, 40, 50, 60], 'e': [np.nan, np.nan, 3.5, np.nan, np.nan, np.nan] # A와 C 그룹은 모두 null, B 그룹은 일부 값이 있음}df = pd.DataFrame(data)# 각 그룹의 행 수를 계산group_sizes = df.groupby(['a', 'b', 'c', 'd'])['e'].transform('size')null_groups = ..
import pandas as pd# 예시 데이터프레임 생성df1 = pd.DataFrame({'a': [1, 2, 3]})df2 = pd.DataFrame({'a': [2, 3, 4, 5], 'b': ['x', 'y', 'z', 'w']})# df1의 a 컬럼을 기준으로 df2의 a 컬럼을 검색하여 df2 전체 반환result = df2[df2['a'].isin(df1['a'])]print(result)
# A와 B의 결합 후 C와 결합df['coalesce'] = df['A'].combine_first(df['B']).combine_first(df['C'])print(df)
import pandas as pdimport numpy as np# 예시 데이터프레임 생성data = { 'a': ['foo', 'foo', 'bar', 'bar', 'foo', 'bar'], 'b': ['one', 'one', 'two', 'two', 'one', 'two'], 'c': ['small', 'small', 'large', 'large', 'small', 'large'], 'd': [1, 1, 2, 2, 1, 2], 'e': ['one', 'two', 'two', 'one', 'one', 'three'], 'f': [10, 20, 30, 40, 50, 60]}df = pd.DataFrame(data)# 그룹화 및 f 컬럼 값 추출def get_f_value..
import pandas as pd# 예시 데이터프레임 생성data = { 'a': ['foo', 'foo', 'bar', 'bar', 'foo', 'bar'], 'b': ['one', 'one', 'two', 'two', 'one', 'two'], 'c': ['small', 'small', 'large', 'large', 'small', 'large'], 'd': [1, 1, 2, 2, 1, 2], 'e': [10, 10, 20, 20, 10, 30]}df = pd.DataFrame(data)# 그룹화 후 e 컬럼의 최빈값 계산mode_df = df.groupby(['a', 'b', 'c', 'd'])['e'].agg(lambda x: x.mode()[0]).reset_ind..
import pandas as pd# 예제 DataFrame 생성data = { 'b': ['x', 'y', 'x', 'z', 'y', 'z'], 'c': [True, False, True, True, False, True], 'd': [10, 20, 30, 40, 50, 60]}a_df = pd.DataFrame(data)# c가 True인 경우에 대해 distinct b 값을 기준으로 d 값을 복사result = a_df[a_df['c']].drop_duplicates(subset='b')[['b', 'd']]# a_df에 결과를 merge하여 추가a_df = a_df.merge(result, on='b', how='left', suffixes=('', '_copy'))print(a_..
def mode_min(series): counts = series.value_counts() mode_val = counts.idxmax() max_count = counts.max() if (counts[counts == max_count].count() > 1): return series.min() return mode_valresult = df.groupby(['b', 'c', 'd'])['e'].agg(mode_min).reset_index()import pandas as pd# 예시 데이터프레임 생성data = { 'a': [1, 2, 3, 4, 5], 'b': ['x', 'x', 'y', 'y', 'x'], 'c': ['p', 'p', ..