我的dataframe1
包含day
列,该列包含一周中每一天从1到7的数字数据。1-星期一,2-星期二…等等。
这一栏是航班起飞的日期
我需要在一秒钟内创建一个新的列dayOfBooking
,它根据预订航班前的天数和航班的起飞日期查找一周中的哪一天
为此,我编写了以下函数:
def findDay(dayOfDeparture, beforeDay):
beforeDay = int(beforeDay)
beforeDay = beforeDay % 7
if((dayOfDeparture - beforeDay) > 0):
dayAns = currDay - beforeDay;
else:
dayAns = 7 - abs(dayOfDeparture - beforeDay)
return(dayAns)
我想要这样的东西:
dataframe2["dayOfBooking"] = findDay(dataframe1["day"], i)
其中i
是标量值
我可以看到findDay
取dataframe1
的整列day
,而不是每行取一个值
有没有一个简单的方法来实现这一点,比如当我们希望第三列是每行其他两列的总和时,我们可以这样写:
dataframe["sum"] = dataframe2["val1"] + dataframe2["val2"]
编辑:找到了。回答和解释如下
如果要提取特定列的每一行值并将其传递给用户定义的函数,则必须使用
apply
函数axis = 1
表示该列的每一行值都被采用相关问题 更多 >
编程相关推荐