[英]How do I convert excel file into csv file using pandas without the first row being modified?
[英]How do I import an Excel file to Pandas if the file's last modified date is today?
因此,我试图编写一个将excel文件导入到Pandas数据框的Python脚本(条件是文件是否在某个日期(例如今天)被修改):
import pandas as pd
import glob
import os
import datetime
def report():
for x in glob.glob("../*.xlsx"):
modx = os.path.getmtime(x)
xmod = datetime.datetime.fromtimestamp(modx)
if datetime.datetime.today() == xmod:
return x
我考虑过直接从函数导入excel文件:
if datetime.datetime.today() == xmod:
df = pd.read_excel(x)
return df
尝试修改数据框(尝试导入之后)会产生以下结果:
File "<ipython-input-56-e6fa18118137>", line 1, in <module>
df = pd.read_excel(report())
File "..\excel.py", line 151, in read_excel
return ExcelFile(io, engine=engine).parse(sheetname=sheetname, **kwds)
File "..\excel.py", line 196, in __init__
raise ValueError('Must explicitly set engine if not passing in'
ValueError: Must explicitly set engine if not passing in buffer or path for io.
无法对此进行过多挖掘。 我什至不确定是否需要定义一个函数。
首先,使用datetime.today().date()
。 这样可以确保使用xmod
进行正确的比较。
其次,该glob
循环令人困惑。 您确定要使用for
, if
要使用相同的缩进级别吗? 还是if
应该在for
循环内? 无论哪种方式,都需要解决。
另外,请尝试不传递函数。 如错误所暗示的那样,显式传递路径或缓冲区。 否则,它会询问您要使用哪个引擎,这比您正在做的事情所花的时间还要多。
所有其他内容,只需订阅最佳编程/ Python实践即可。
In [1]: import pandas as pd
...: from datetime import datetime
...: import os
In [2]: def load_if_modified_today(xls):
...: modx = os.path.getmtime(xls)
...: xmod = datetime.fromtimestamp(modx)
...: if datetime.today().date() == xmod.date():
...: df = pd.read_excel(xls)
...: return df
In [3]: e = 'trades.xlsx'
...: df = load_if_modified_today(e)
...: df.head()
Out[3]:
System Name Symbol Unit Position Entry Date Entry Time \
0 TB Turtle FX Majors EURUSD 1 Short 2014-12-02 Day
1 TB Turtle FX Majors EURUSD 1 Short 2014-12-05 Day
2 TB Turtle FX Majors EURUSD 1 Long 2014-12-10 Day
3 TB Turtle FX Majors EURUSD 1 Long 2014-12-16 Day
4 TB Turtle FX Majors EURUSD 1 Short 2014-12-17 Day
Entry Order Price Stop Price Risk% Quantity Entry Fill
0 1.2420 1.2428 0.0024 6 1.2418
1 1.2284 1.2297 0.0022 4 1.2283
2 1.2447 1.2434 0.0017 3 1.2448
3 1.2496 1.2486 0.0026 5 1.2499
4 1.2385 1.2397 0.0022 4 1.2383
我遇到了相同的ValueError:如果未传递io的缓冲区或路径,则必须显式设置引擎。 在将代码更改为:
data = pd.read_excel(R"D:\\file.xlsx")
有效。
我遇到了一个类似的问题,结果发现安装的不同python框架版本相互冲突。 我删除了其中一个(anaconda),保留并更新了纯Python2.7,所有内容均已修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.