【发布时间】:2021-07-08 07:10:59
【问题描述】:
我有这样的代码:
#read data source into dataframe
adjustments_list = pd.read_csv('./first_case.csv', encoding = "UTF-16", sep = '\t', parse_dates = ['Date'])
#match F/R and M/X meeting appropriate conditions
#represented by list of sets with two values - each value is id of adjustment, each set is relation
relation_list = []
def func_inner(outer, inner):
if outer['ASIN'] == inner['ASIN']:
if outer['reason_code'] == 'F' or outer['reason_code'] == 'R':
if (inner['reason_code'] == 'M' or inner['reason_code'] == 'X') and (inner['Date'] - timedelta(days = 3)) <= outer['Date'] <= inner['Date']:
relation_list.append([outer.name, inner.name])
if outer['reason_code'] == 'M' or outer['reason_code'] == 'X':
if (inner['reason_code'] == 'F' or inner['reason_code'] == 'R') and inner['Date'] <= outer['Date'] <= (inner['Date'] + timedelta(days = 3)):
relation_list.append([outer.name, inner.name])
def func(x):
adjustments_list.apply(lambda row: func_inner(outer = x, inner = row), axis = 1)
adjustments_list.apply(lambda row: func(row), axis = 1)
如何切换我的方法以便不使用apply() 函数,而是使用矢量化?
我尝试使用此资源:Link,但我不知道如何在我的具体情况下实现它。
【问题讨论】:
标签: python pandas dataframe data-science