python - Pandas 过滤到特定行,然后合并 2 列
问题描述
我有一个带有 create_date 和 create_time 的数据框。Create_date 是一个日期,create_time 是一个日期时间。
出于某种原因,将来会有一些 create_times,但 create_date 看起来仍然准确。
例如创建日期:2019-03-29
创建时间:2035-02-26 18:29:59
我想过滤到我感兴趣的行:
df.loc[df['create_time'] >= '2019-09-23','create_time']
然后我想梳理下面的两列
pd.to_datetime(df['create_date'].astype(str) + ' ' + df['create_time'].dt.time.astype(str))
有没有一种简单的方法来做这样的事情:
df.loc[df['create_time'] >= '2019-09-23','create_time'] = pd.to_datetime(df['create_date'].astype(str) + ' ' + df['create_time'].dt.time.astype(str))
上面语句的问题是右边没有应用过滤器
我得到的错误是针对应该从选择中排除的行。我无法将查询应用于整个数据帧,因为某些 create_times 是 NaT。
解决方案
你可以试试mask
con1=df['create_time'] >= '2019-09-23'
v1=pd.to_datetime(df['create_date'].astype(str) + ' ' + df['create_time'].dt.time.astype(str))
df.create_time=df.create_time.mask(con1,v1)
推荐阅读
- javascript - 获取图像的宽度和高度
- java - 在Java中使用默认说明符声明Hashmap时如何将Hashmap传递给另一个类(不同的包)
- c# - 如何在使用 Windows.Web.Http 的 UWP 应用中使用为 System.Net.Http 添加的 IdentityModel 扩展方法 (TokenRefresh)
- flutter - 电话会议就像放大颤动
- python - Python exit() 命令触发无限循环(已解决)
- python - 如何在 Gekko 中使用 apm_get?
- python - numpy(setup.py)的构建轮......错误
- angular - 如何在 observable 中等待异步函数?
- go - 调用 Google Apps 脚本
- javascript - 是否可以在设备级别而不是浏览器级别使用 javascript 生成指纹?