我有大量的excel文件需要从中提取数据,希望能提取到一个pandas df中。这个文件包含许多列,其中一列是时间,如字符串“16:30”
例如,文件名为“Monday 21st September 2020. xlsx”
我尝试循环遍历这些文件,并添加一个datetime列,该列包括来自文件名的日期和来自excel文件列的时间。
import pandas as pd
import datetime
import dateutil
import glob
import pathlib
folder = r"C:\temp\Friday 1st April 2022 (SB).xlsx"
for file in glob.glob(folder, recursive=False):
#read in the excel file
df = pd.read_excel(file, sheet_name="SB", usecols="B,I,J")
#workout the date from the file name
filedate = dateutil.parser.parse(pathlib.Path(file).stem.replace(" (SB)",""))
#print filedate because it doesnt end up in the df correctly!
print(type(filedate))
print(filedate)
df.insert(0,'Date', racedate.strftime('%d-$m-%Y'))
print(df)
这就给出了,这个.....所以添加到df的日期在某个地方出错了
C:\temp\Friday 1st April 2022 (SB).xlsx
<class 'datetime.datetime'>
2022-04-01 00:00:00
Date Time R1 R2
0 01-$m-2022 16:30 9 5
1 01-$m-2022 16:30 5 5
2 01-$m-2022 16:30 6 5
3 01-$m-2022 16:30 3 6
4 01-$m-2022 16:30 3 3
.. ... ... .. ..
446 01-$m-2022 16:15 3 4
447 01-$m-2022 16:15 3 3
448 01-$m-2022 16:15 3 3
449 01-$m-2022 16:15 5 3
450 01-$m-2022 16:15 5 4
[451 rows x 4 columns]
另外,一旦我得到这个排序,我想合并两个日期和时间列到一个日期时间对象。
1条答案
按热度按时间4smxwvx51#
您可以像这样从
folder
变量中提取日期。这将打印
01-04-2022
变量
date_string
是由regex计算出来的,得到的是1st April 2022
,dateutil库可以很容易地解析它。