在本指南中,我将向你展示如何将具有变量名称的CSV文件导入Python。我将使用一个简单的示例来说明这个概念,并提供完整的 Python 代码。
导入具有变量名称的CSV文件:目标
让我们回顾一个简单的例子,你将能够:
- 创建一个带有输入框的简单图形用户界面 (GUI)。然后你可以在输入框中输入你的变量(例如特定日期)
- GUI 还将包含一个按钮。单击该按钮后,CSV 文件将根据你键入的变量导入Python
为了实现上述目标,你需要导入tkinter包(用于创建 GUI)和pandas 包(用于将 CSV文件导入Python)。
这是应用 Python 代码后 GUI 的样子:
示例 – 将具有变量名称的CSV文件导入Python
如何导入含有变量名称的CSV文件?假设你想将一个 CSV文件导入Python,其中文件名每天都在变化。
例如,CSV 文件名可能包含一个每天都不同的日期。
就我而言,我将 CSV 文件存储在以下路径下。请注意,你需要将此路径(在下面提供的 Python 代码中)更改为 CSV 文件在你的计算机上的存储位置。
'C:\Users\Ron\Desktop\Import into Python\Sales_' + x1 + '.csv'
其中:
- 蓝色突出显示的部分是路径名中永远不会改变的部分
- 绿色部分代表变量(在我们的例子中,它是日期)
- 紫色部分是 CSV 文件扩展名,它也不会改变
- 请注意,+ 号用于连接路径名的不同组成部分。另请注意,变量(绿色)不应放在引号内(而蓝色和紫色的非变量部分应放在引号内)
导入具有变量名称的CSV文件:假设你将以下数据存储在 CSV 文件中。并且 CSV 文件名包含日期 27042019(此日期是你的变量),因此完整的 CSV 文件名是:Sales_27042019
Client Name | Country | Product | Purchase Price | Date |
Jon Smith | Japan | Computer | $800 | 27-Apr-19 |
Bill Martin | US | Tablet | $450 | 27-Apr-19 |
Maria Blue | Canada | Printer | $150 | 27-Apr-19 |
Rita Yu | Brazil | Laptop | $1,200 | 27-Apr-19 |
Jack Mo | UK | Monitor | $300 | 27-Apr-19 |
要将具有变量名称的CSV文件导入Python,你可以使用下面的 Python 代码(如前所述,你需要更改路径名称以反映 CSV 文件在你的计算机上的存储位置)。
代码中包含其他注释:
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:\Users\Ron\Desktop\Import into Python\Sales_' + 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分配了列名(以黄色突出显示):
df = DataFrame(read_sales,columns=[‘Client Name’,’Country’,’Product’,’Purchase Price’,’Date’])
如果你的 CSV 文件包含不同的列名和/或不同的列数,你需要更改黄色部分以匹配你的数据集。
在 Python 中运行代码
(1) 首先,在Python中运行代码
(2) 然后,输入日期27042019
(3) 最后,点击按钮' Input date to import file (ddmmyyyy) '
这是你会得到的结果:
假设在第二天,你获得了一个新的 CSV 文件,其中日期为 28042019。完整的 CSV 文件名将是:Sales_28042019
Client Name | Country | Product | Purchase Price | Date |
Rick Jones | Spain | Computer | $800 | 28-Apr-19 |
Eva Green | US | Tablet | $450 | 28-Apr-19 |
在这种情况下,请在输入框中键入日期28042019:
然后,单击“输入日期导入文件 (ddmmyyyy) ”按钮,你应该会看到下一个日期结果:
任务完成!
导入具有变量名称的CSV文件总结
如何导入含有变量名称的CSV文件?你刚刚看到了如何将具有变量名称的CSV文件导入Python。在本指南中,你使用了日期变量。但是,你可以将相同的概念应用于不同类型的变量。
此外,如果你尝试导入不同的文件类型(例如Excel 文件),类似的原则也适用。