python-3.x - 无需迭代即可评估 DataFrame datetime.datetime 对象
问题描述
正如我在这里看到的,如果您希望您的代码具有可扩展性,那么迭代 DataFrame 并不有趣......
因此,我正在导入一个带有“日期”列的 .xlsx 电子表格,pandas 会自动将其识别为 datetime.datetime 格式。
以下是代码示例:
import pandas as pd
import datetime
df = pd.read_excel('Sheet.xlsx')
df['Date'][0].month == 1
Output:
True
如果我尝试df['Date'].month
它会给AttributeError: 'Series' object has no attribute 'month'
而df['Date']
输入返回一个包含所有 datetime.datetime 对象的系列。
所以我的问题是如何在测试月份获得一个包含所有布尔值的系列,而不必一个接一个地迭代所有行?
我也考虑过这些方法来选择具有给定值的行,但老实说,我坚持这一点,因为我正在过滤对象。
也可能是错误的,但我相信如果我只需要迭代月份数而不是每一行会更有效......
解决方案
Series.dt.month
如果需要从列中提取属性,请使用.dt
:
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')
mask = df['Date'].dt.month == 1
或Series.eq
比较:
mask = df['Date'].dt.month.eq(1)
推荐阅读
- react-native - 在同一组件中获取相机和位置的权限似乎无法正常工作?
- jquery - 当通过ajax mvc上传文件HttpPostedFileBase时返回null
- asp.net-mvc - 将 where 条件应用于 Linq 查询中选择的每个值,其中包含 Groupby
- ios - Swift 5.1.2 编译器 (couchbaselite) xcode 11.2 无法导入使用 Swift 5.1 编译的模块
- c# - 代码的区别?c# 通过引用传递参数
- c++ - 在 kubuntu 上安装 Qt 4.4.3 版出现错误:缩小转换
- java - 尝试在空对象引用上调用虚拟方法“void android.view.View.setAnimation(android.view.animation.Animation)”
- swift - 如何在 PencilKit 的 PKCanvasView 中禁用铅笔绘图,仅用于查看目的
- c# - 尝试为 API 编写 POST 方法,我无法在“邮递员”上获得结果
- javascript - 在php中提交表单后,未加载成功消息模式