python - 仅访问数据框中的第二行列名
问题描述
我想读取一个excel文件,其中第二行是字符串格式的日期,第一行是每个日期对应的工作日,然后将第二行从字符串更改为日期时间。如果我只读取第二行作为索引,并完全跳过第一行的日期,我将执行以下操作将其转换为日期时间:
Receipts_tbl.columns = pd.to_datetime(Receipts_tbl.columns)
如果我有一个多索引数据框,其中索引的第一行仍然是工作日,并且我希望将第二行转换为日期时间,我该怎么做?
谢谢
解决方案
您没有举例说明您的数据源是什么样的,所以我在推断。
如果您使用pd.read_excel
with header=None
,它将把前两行视为数据,您可以操纵它们来实现您的目标。这是一个最小示例,下面有一个示例“真实”数据行:
df = pd.DataFrame([['Mon', 'Tues'], ['10-02-1995', '11-23-1997'],
[12, 32]])
# 0 1
#0 Mon Tues
#1 10-02-1995 11-23-1997
#2 12 32
接下来,如您在问题中所说,将第一行转换为日期时间。
df.loc[1] = pd.to_datetime(df.loc[1])
从前两行创建一个多索引,并将其设置为数据框的列
df.columns = df.T.set_index([0,1]).index.set_names(['DOW', 'Date'])
最后,从第二行向下选择,因为前两行现在在列中。
df = df.loc[2:].reset_index()
df
#DOW Mon Tues
#Date 812592000000000000 880243200000000000
#0 12 32
请注意,DOW 和 Date 现在是列的多级索引,并且“数据”行已重新索引为从 0 开始。
如果我误解了你的问题,请告诉我。
推荐阅读
- html - iPhone Safari iOS 13上的html缩放中的可点击区域标签
- java - 降雨问题,这次只有 3 个月
- vue.js - 为什么我的 v-data-table 中没有显示图像
- javascript - 使用nodejs在Mysql中重置ID
- bash - 如何在 Windows 上从 shell/bash 脚本运行 Robot Framework 的“robot”命令?
- ios - 如何在 macOS Catalina 上复制 iPhone UDID?
- javascript - Fullcalendar 外部拖放无法正常工作
- vba - 在 MS Access 中将 DBF 转换为 CSV
- php - 想要制作像 WhatsApp 这样的推送通知应用程序
- html - VBA IE密码问题