这是一个自我回答的QnA,旨在指导用户应用的缺陷和好处.
我已经看到很多关于Stack Overflow问题的答案涉及使用apply.我也看到用户评论他们说" apply很慢",应该避免".
我已经阅读了很多关于性能主题的文章,解释apply很慢.我还在文档中看到了一个关于如何apply简单地传递UDF的便利函数的免责声明(现在似乎无法找到).因此,普遍的共识是,apply如果可能,应该避免.但是,这引发了以下问题:
apply是如此糟糕,那为什么它在API中呢?apply- 免费?apply是不错的(比其他可能的解决方案更好)?我想知道是否有任何有效的方法或单线程,给定一个pandas DatetimeIndex date1,返回DatetimeIndex date2,这是下个月的第一天?
例如,如果date1是'2011-09-30',那么date2是'2011-10-01'?
我试过这个班轮
df.index.to_period("M").to_timestamp('M')
Run Code Online (Sandbox Code Playgroud)
但这似乎只能回归"同月的最后一天".这里可以做一些日期时算术吗?
谢谢!
我有一个由日期列组成的数据框,但日期列是字符串。如何检查日期是在上半月还是下半月,并添加带有帐单日期的另一列
例如
如果日期是08-10-2020(格式为 dd-mm-yyyy),则该billing date列将包含同月 16 日,如果日期位于 17-31 之间,则计费日期将包含下个月的 1 日
数据:
print(df['dispatch_date'].head())
0 01-10-2020
1 07-10-2020
2 17-10-2020
3 16-10-2020
4 09-10-2020
Name: dispatch_date, dtype: object
Run Code Online (Sandbox Code Playgroud)
示例输出:
billing date
0 01-10-2020 16-10-2020
1 07-10-2020 16-10-2020
2 17-10-2020 01-11-2020
3 16-10-2020 01-11-2020
4 09-10-2020 16-10-2020
Run Code Online (Sandbox Code Playgroud)