本文主要展示如何将具有变量名称的 CSV 文件导入 Python,比如一系列连续变化的文件如:
- r1.csv
- r2.csv
- r3.csv
- …
我将使用一个简单的例子来说明这个概念,并提供完整的 Python 代码。
典型应用场景我们经常会遇到以下场景:
- 创建一个带有输入框的简单图形用户界面 (GUI)。然后框中输入变量(例如特定日期)
- GUI 还将包含一个按钮。单击该按钮后,就可以按照你输入的变量进行读取批量CSV文件
为了实现上述目标,我们需要导入 tkinter (用于创建 GUI)和 pandas 包(用于将 CSV 文件导入 Python)。
我们所说的GUI应该长这样:
我们想将一个 CSV 文件导入 Python,其中文件名每天都在变化。 例如,CSV 文件名可能包含一个每天都不同的日期。
本例中,将 CSV 文件存储在以下路径下。请注意,你需要将此路径(在下面提供的 Python 代码中)更改为 CSV 文件在你自己的计算机上的存储位置。
‘C:UsersRonDesktopimport into PythonSales_’ + x1 + ‘.csv’
对上述路径的一些解释:
- 红色字体的部分是路径名中永远不会改变的部分
- 黄色高亮部分表示变量(在我们的例子中,它是日期)
- 黑字是 CSV 文件扩展名,它也不会改变
- 注意 + 符号用于连接路径名的不同组成部分。
- 另请注意,变量不应放在引号内(而非变量部分应放在引号内)
假设您将以下数据存储在 CSV 文件中。并且 CSV 文件名包含日期 27042019(此日期是您的变量),因此完整的 CSV 文件名是:Sales_27042019
要将具有变量名称的 CSV 文件导入 Python,可以使用下面的 Python 代码(记得更改路径)。 代码中包含其他注释:
import pandas as pd from pandas import Dataframe import tkinter as tk root= tk.Tk() canvas1 = tk.Canvas(root, width = 300, height = 300) # create the canvas canvas1.pack() entry1 = tk.Entry (root) # create the entry box canvas1.create_window(150, 100, window=entry1) def insert_number(): # add a function/command to be called by the button (i.e., button1 below) global x1 # add 'global' before the variable x1, so that you can use that variable outside of the command/function if ever needed x1 = str(entry1.get()) # store the data input by the user as a variable x1 PATH = r'C:UsersRonDesktopimport into PythonSales_' + x1 + '.csv' #(use "r" before the path string to address special character, such as ''). Don't forget to put the file name at the end of the path + '.csv' read_sales = pd.read_csv (PATH) #read the csv file using the 'PATH' varibale df = Dataframe(read_sales,columns=['Client Name','Country','Product','Purchase Price','Date']) # assign column names print (df) button1 = tk.Button (root, text='Input date to import file (ddmmyyyy) ',command=insert_number, bg='green', fg='white') # button to call the 'insert_number' command above canvas1.create_window(150, 140, window=button1) root.mainloop()
请注意,在 Python 代码中,我们使用 Dataframe 分配了列名(以黄色突出显示)
如果您的 CSV 文件包含不同的列名和/或不同的列数,您需要更改黄色部分以匹配您的数据集。
(1) 点击运行
(2) 在框中输入 27042019
(3) 最后点击按钮 ‘Input date to import file (ddmmyyyy)‘
运行之后就可以看到结果了(前提是我已经有一个名为27042019.csv的文件存在我本机的确定位置)
重复使用这种方法就可以实现交互性的读取用变量命名的文件了,当然也可以舍去GUI,使用循环来遍历所有按一定规律命名的文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)