我正在为一个正在创建航线的项目完善代码。我目前拥有的是由 c_match 的索引值组合在一起的数据帧。很酷,很棒,乍一看一切看起来都是正确的。
航线是一组具有相同折扣和最低费用的州。我的代码返回具有相同折扣的州。大多数具有相同折扣的州也具有相同的最低费用。然而,异常值是具有相同折扣和不同最低费用的州。
目标:创建具有相同最低费用和相同折扣百分比的航线。
我的想法:创建一个逻辑运算,将具有相同费率和成本的州名称连接起来,并返回其费率和成本。仍然需要考虑到相同费率下具有不同成本的州。
期望的输出:
Shipping Lane Rate Cost
20_21_RDWY_Purple_AL_AR_KY_LA_MS_SC_TN_PE 50.80% 120
20_21_RDWY_Purple_AZ 50.80% 155
20_21_RDWY_Purple_CA 62.40% 145
20_21_RDWY_Purple_CO_ND_WY_MB_NF_PQ 62.40% 155
20_21_RDWY_Purple_CT_DE_MN_NE 50.00% 145
20_21_RDWY_Purple_DC_IA_KS_MD_MI_OH_OK_WI 49.00% 125
20_21_RDWY_Purple_FL 48.30% 125
当前代码
def remove_dups(input, output):
input.sort()
n_list = list(input for input, _ in itertools.groupby(input))
output.append(n_list)
def get_matches_discount(state):
state_groups = []
state_rates = []
state_cost = []
final_format = []
match = []
c_match = []
for i, x in enumerate(df_d[state]):
#checks within the column for identical values then maps where the identical values are
match1 = [j for j, y in enumerate(df_d[state].isin([x])) if y is True]
match.append(match1)
remove_dups(match, c_match)
for list in c_match:
for elements in list:
r = elements[0]
state_g = df_d.index[elements]
state_groups.append(state_g)
state_r = df_d[state][r]
state_rates.append(state_r)
print(state_rates)
match_cost = df_m[state][r]
state_cost.append(match_cost)
for i in state_groups:
delimiter = "_"
join_str = delimiter.join(i)
j_str = "20_21_RDWY_Purple_" + join_str
final_format.append(j_str)
master_frame = pd.DataFrame(
{'Shipping Lane': final_format,
'Rate': state_rates,
'Cost': state_cost,
}
)
print(master_frame)
return master_frame
输入示例:
最低收费表
慕雪6442864
翻过高山走不出你
相关分类