【发布时间】:2019-08-12 13:57:04
【问题描述】:
在 Python 中,我创建了一个有 4 个参数的函数(2 个强制 2 个可选)
def combineDateTime(dateInput, timeInput, dateInputFormat='%Y-%m-%d', timeInputFormat='%H:%M:%S'):
.....
我想通过调用函数并将现有数据框列中的 2 个值传递给它,在我的数据框上创建一个新列,但是我无法理解传递所需列所需的语法。
该函数测试传递的值的类型(例如 str、int 等)并根据它做不同的事情,但我认为问题在于它被传递了一系列,因此逻辑不起作用。
谁能告诉我应该怎么称呼它。我正在尝试使用 .apply 功能。
df_scd2_pd['NewColumn'] = df_scd2_pd[[col_EffFromDT,col_EffFromTM]].apply(combineDateTime, axis=1)
非常感谢
【问题讨论】:
-
这已由另一篇文章解决,但为了提高速度,解决的语法是 df_scd2_pd['calc_EffFrom'] = df_scd2_pd.apply(lambda row: combineDateTime(row[col_EffFromDT], row[col_EffFromTM]), axis =1)
标签: python pandas dataframe apache-spark-sql