繁体   English   中英

如何将 for 循环的结果存储在数据框中并导出到 Excel?

[英]How to store results from a for loop in a data frame and export to Excel?

我正在编写一个 Python 程序,该程序检索特定文件夹中的所有文件名及其修改日期,然后将该列表导出到 Excel。我已经能够完成第一部分(从文件夹中检索文件名和修改日期) . 我在将结果(所有文件名+日期)存储在数据框中时遇到了很多麻烦。 我试图在数据框中获取结果,因为据我了解,在导出到 Excel 之前,您需要将其放在一个数据框中。

下面的程序几乎给了我我需要的东西,但数据框只是从循环的最后一条记录创建的。

path = 'Insert Path'

def ts_to_dt(ts):
    return datetime.datetime.fromtimestamp(ts)

for file in os.scandir(path):
    if (file.name.endswith(".pdf") or file.name.endswith(".PDF")):
        results = {'FileName':file.name, 'DateModified':ts_to_dt(file.stat().st_atime)}

df=pd.DataFrame(data=results,index=[0])
print(df)

我确定我缺少一些明显的东西,但我是 Python 的新手,因此我们将不胜感激。

您的results变量会在循环的每次迭代中重新初始化,而不是向其添加项目。 这就是为什么您只获得最后一条记录的原因。 您可以在循环外声明results ,然后将 append 声明给那些结果。 然后,导出到 excel 很容易!

path = 'Insert Path'

def ts_to_dt(ts):
    return datetime.datetime.fromtimestamp(ts)

results = {'FileName': [], 'DateModified': []}
for file in os.scandir(path):
    if (file.name.endswith(".pdf") or file.name.endswith(".PDF")):
        results['FileName'].append(file.name)
        results['DateModified'].append(ts_to_dt(file.stat().st_atime)
        

df=pd.DataFrame(data=results,index=[0])

# export it to excel:
# first argument is the output excel name (can include a path)
# second argument is what you want the sheet to be named.
df.to_excel('output.xlsx', 'sheetname')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM