好吧,我真的很好,被卡住了!
我有两个桌子
1)包含电话数据 2)包含订单数据
都有分钟,小时,天,月,年,帐号字段。
如果要在通话时间2分钟之内创建订单,我想将“订单详细信息”添加到“电话呼叫”表中。
我已经累了很多东西,但努力了解如何通过我的函数将多个变量传递给lambda函数?
我也尝试过使用merge合并两个表,但是我似乎无法指定分钟数在一定范围内。
我尝试过的两个功能。
def get_order_from_call_time_and_person(row):
order = orders_df[(orders_df["hour_created"] == row["HOUR"]) &
(orders_df["minute_created"] >= row["MINUTE"]) &
(orders_df["minute_created"] <= row["MINUTE"]+2) &
(orders_df["year_created"] == row["YEAR"]) &
(orders_df["month_created"] == row["MONTH"]) &
(orders_df["day_created"] == row["DAY"]) &
(orders_df["slaccount"] == row["oprano"])]
try:
value = order["value"][0]
quoteno = order["quoteno"][0]
cost = order["costvalue"][0]
orderno = order["ordernumber"][0]
margin = order["value"][0] - order["costvalue"][0]
return value, margin, cost, int(quoteno), orderno
print( "OK")
except:
return "none", "none" , "none", "none", "none"
print("Not Found")
def get_order_from_call_time_and_person1(mn,hr,dy,mt,yr,ac):
order = orders_df[(orders_df["hour_created"] == hr) &
(orders_df["minute_created"] >= mn) &
(orders_df["minute_created"] <= mn+2) &
(orders_df["year_created"] == yr) &
(orders_df["month_created"] == mt) &
(orders_df["day_created"] == dy) &
(orders_df["slaccount"] == ac)]
try:
value = order["value"][0]
quoteno = order["quoteno"][0]
cost = order["costvalue"][0]
orderno = order["ordernumber"][0]
margin = order["value"][0] - order["costvalue"][0]
return value, margin, cost, int(quoteno), orderno
print( "OK")
except:
return "none", "none" , "none", "none", "none"
print("Not Found")
我尝试过的调用代码。
test_df['value'], test_df['margin'],test_df['cost'],test_df['quote_no'],test_df['order_no'] = zip(*test_df.apply(get_order_from_call_time_and_person, axis=1))
也采用这种格式(这些列是我的列名-但效果相同):
df[['NewCol', 'NewCol2']] = df[['TimeCol','ResponseCol']].apply(segmentMatch, axis=1)
工作并返回值列表
get_order_from_call_time_and_person1(51,16,11,6,2013,“ AAA1”)
任何人都可以帮助我吗?