【发布时间】:2022-10-24 06:31:45
【问题描述】:
嗨偷看,
我想知道是否有可能在 pandas .loc 的结果中使用函数,或者是否存在更好的方法来做到这一点。
所以我想做的是:
如果该系列中的值为 =!0,则获取其他行的值并用作一个函数(在本例中为 get_working_days_delta)的参数,然后将结果放入同一系列中。
df.loc[(df["SERIES"] != 0), 'SERIES'] = df.apply(cal.get_working_days_delta(df["DATE_1"],df["DATE_2"]))
输出为:datetime64[ns] is of unsupported type (<class 'pandas.core.series.Series'>)
在这种情况下,使用的参数(df["DATE_1"] df["DATE_2"]) 被识别为整个系列而不是单元格值
我不想使用 .apply 或 .at 因为这个 df 有超过 400 万行
【问题讨论】:
-
欢迎来到Stack Overflow. 这不是代码编写或辅导服务。我们帮助解决具体的技术问题,而不是对代码或建议的开放式请求。请编辑您的问题以显示您迄今为止尝试过的内容,以及您需要帮助的具体问题。请参阅How To Ask a Good Question 页面,了解有关如何最好地帮助我们帮助您的详细信息。
-
此外,在调试这样的分配时,首先确保右侧确实有效,然后再假设问题出在切片/左侧。在询问错误时,请始终查看并在 SO 帖子中包含 full traceback - 它包含非常重要的调试信息,例如会告诉您问题是在
.apply还是作业中。 -
如果你要传递一个系列,你需要写
cal.get_working_days_delta来操作一个系列。