import numpy as np
import pandas as pd
pd.set_option('display.max_columns', 10)
# 刪除空數據
def DropNan(data_qd):
for i in range(len(data_qd)):
if np.isnan(data_qd['test_uniq_cnt'][i]) or \
np.isnan(data_qd['fail_uniq_cnt'][i]):
data_qd = data_qd.drop(i)
return data_qd
def GetGroupSum(df, lst_merge):
pop_group = df.groupby(lst_merge).sum().reset_index().\
rename(columns = {'test_uniq_cnt':'sum_test_cnt','fail_uniq_cnt':'sum_fail_cnt'})
pop_group['Percentofpass'] = pop_group.\
apply(lambda x: -99999 if x.sum_test_cnt == 0 or np.isnan(x.sum_test_cnt) or np.isnan(x.sum_fail_cnt) \
else 1 - float(x.sum_fail_cnt)/x.sum_test_cnt, axis = 1)
return pop_group
def GetGroupProd(df, lst_group):
fpy_group = df.groupby(lst_group).\
apply(lambda x: '無生產' if x['Percentofpass'].max(axis = 0) < 0 \
else 'NA' if x['Percentofpass'].min(axis = 0) < 0 \
else x['Percentofpass'].cumprod(axis = 0).iloc[-1]).reset_index()
fpy_group.columns = lst_group + ['fpy']
return fpy_group
Pandas DataFrame 分組求和、分組乘積
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.