python - 未知数量的用户输入。输入为 .xlsx 文件
问题描述
我正在尝试创建一个对 .xlsx 文件进行一些分析的简单代码。这些文件被转换为 pandas 数据帧,然后被修改和绘制。我遇到的问题是我不知道每次运行程序时会有多少感兴趣的文件。
import pandas as pd
import matplotlib.pyplot as plt
#Prompt user to enter in Files
data=list()
while true:
file=input('Enter .xlsx File Name/nType 'Done' When Complete')
if file == 'Done': break
else:
data.append(pd.read_excel(file))
#Crunch Data
def somefun(data[i],..):
return list a
def anotherfunc(data[i],..):
return list b
#plot Data....
在这里,我将每个文件转换为数据框,然后将其附加到列表中。我想我可以这样进行,但它可能不是“pythonic”。我最近才开始使用面向对象编程。听起来我可以通过定义自己的类从每个用户界面创建对象的实例。我在思考如何构建课程以及这是否比它值得做的更多工作时遇到了麻烦。
非常感激,
解决方案
这是我用来遍历文件夹中某种类型的所有文件的脚本。我将每个文件读入数据框,然后将数据框存储在字典中。最后,您可以将所有数据帧连接成一个数据帧。
import pandas as pd
import os
path = r'C:\Users\user\Documents\project'
allfiles=os.listdir(path)
xlsx_list=[filename for filename in allfiles if filename[-5:] in [".xlsx"]]
ds = {}
for file in xlsx_list:
ds[file] = pd.read_excel(path+'\\'+file)
df = pd.concat(ds)
推荐阅读
- python - 当有多个具有相同类名的类时如何指定单击一个类。(硒蟒)
- php - 无法在 php 中设置动态类名
- java - 为两个不同的移动实例化一个撤销方法
- python - Pycharm:无法基于python 3.9.01+制作venv
- wpf - Powershell GUI 冻结,即使使用运行空间
- javascript - Javascript innerText - 回车 - 正则表达式不起作用
- python - Python 和 SQLite 需要帮助 --> TypeError: 'NoneType' object is not subscriptable
- python-3.x - 使用另一个列表创建一个列表
- firebase - 使用从前端应用程序获取的 firebase 令牌处理 Spring Boot REST API 中的身份验证
- python - 为数据集绘制图形以在 Python 上开发 SVM