你能否创建一个pandas函数,将两个不同列的值作为参数?
我有一个函数,如果两列的值在相同的范围内,则返回1;否则返回0:
我希望第一个参数
我尝试了以下方法,但没有成功:
我有一个函数,如果两列的值在相同的范围内,则返回1;否则返回0:
def segmentMatch(RealTime, ResponseTime):
if RealTime <= 566 and ResponseTime <= 566:
matchVar = 1
elif 566 < RealTime <= 1132 and 566 < ResponseTime <= 1132:
matchVar = 1
elif 1132 < RealTime <= 1698 and 1132 < ResponseTime <= 1698:
matchVar = 1
else:
matchVar = 0
return matchVar
我希望第一个参数
RealTime
是数据框中的一列,这样函数就可以取该列中每一行的值。例如,RealTime
是df['TimeCol']
,第二个参数是df['ResponseCol']
。我希望结果是数据框中的一个新列。我找到了几个 帖子回答了类似的问题,但是看起来这些参数是变量,而不是数据框中的行值。我尝试了以下方法,但没有成功:
df['NewCol'] = df.apply(segmentMatch, args=(df['TimeCol'], df['ResponseCol']), axis=1)
df
就是你的 DataFrame。根据文档,x
的值是一个 pandas 行。使用df
更多的是一种约定,因为任何其他名称也可以。x
同样如此。 - Nelewout