python - 检索相对于数据框中特定行具有今天日期的列名
问题描述
我有一个从 Excel 中读取的 pandas 数据框,如下所示。列标签是日期。鉴于今天的日期是 2020-04-13,我想检索接下来 7 天的 C 行值。
目前,我设置索引并检索 C 的值,当我打印行时,我得到所有日期的输出及其 C 的值。
我知道我应该使用date.today()
. 有人可以让我知道如何为 C 行捕获今天日期 ( 2020-04-13
) 的列吗?我是 python/pandas 的初学者,正在学习数据框的概念。
input_path = "./data/input/data.xlsx"
pd_xls_obj = pd.ExcelFile(input_path)
data = pd.read_excel(pd_xls_obj,sheet_name="Sheet1",index_col='Names')
rows = data.loc["C"]
解决方案
在 pandas 中使用日期作为列标签而不是行索引是非正统的,并且由于 pandas dtypes 按列而不是按行,这意味着 pandas 不会正确地将列标签类型检测为“日期时间”,而不是字符串/ object,因此其上的比较和算术运算符将无法正常工作,因此您将不得不做许多不必要的可避免的手动工作以及与日期时间的转换。反而:
您应该在读取时立即转置数据帧:
data = pd.read_excel(...).T
现在您的日期将位于具有相同 dtype 的单列中,您可以使用pd.to_datetime()
.
然后,确保数据类型正确,即索引的数据类型应该是“日期时间”,而不是“对象”、“字符串”等。(请在问题中发布您的数据集或 URL 以使其可重现)。
现在'C'将是一列而不是一行。
您可以通过以下方式访问整个“C”列:
rows = data[:, 'C']
...同样,您可以为所需日期的行子集编写表达式。等待您的数据片段,以显示代码。
推荐阅读
- javascript - 当我想打印数组中的所有项目时,javascript getItem 打印最后一个数组
- php - 如何在 php/html 中获取当前和下个月的日期?
- pandas - 使用 pandas 合并合并 3 个数据框
- json - 有没有办法改进 Grails 4 JSON 转换器处理 LocalDate 对象的方式?
- docker - 标记 docker 多阶段构建的所有阶段
- r - 在 bar/col 图中堆叠多列 df 并创建 %
- differential-equations - 我如何区分这个复杂的功能?(等温球的泊松方程)?
- numpy - 如何将 PyTorch 张量转换为 Numpy 的 ndarray?
- google-apps-script - 在创建新电子表格时安装基于时间的触发器
- sql-server - 通过 Visio 中的 Powershell 脚本自动刷新 SQL Server 导入的数据集