【发布时间】:2022-01-26 18:36:56
【问题描述】:
我是使用 python 的新手,出于工作目的,我在这里寻求您的帮助。
我在同一个文件夹中每个月都有 12 个 excel 文件,其中包含以下列:Product_Name、Quantity 和 Total_Value
所以,我想做但我不知道该怎么做是:
- 在每个文件名中包含相同日期的文件上添加一个月份列
- 将这些 excel 文件合并到一个唯一的文件中
例如:
1 月 21 日.xls:
| Product_Name (type:string) | Quantity (type:float) | Total_Value (type:float) | Month (type:Date) |
|---|---|---|---|
| Product A | 10 | 250 | "File Name" (January-21) |
| Product B | 20 | 500 | "File Name" (January-21) |
| Product C | 15 | 400 | "File Name" (January-21) |
2 月 21 日.xls:
| Product_Name (type:string) | Quantity (type:float) | Total_Value (type:float) | Month (type:Date) |
|---|---|---|---|
| Product A | 40 | 800 | "File Name" (February-21) |
| Product B | 25 | 700 | "File Name" (February-21) |
| Product C | 30 | 500 | "File Name" (February-21) |
合并后:
| Product_Name (type:string) | Quantity (type:float) | Total_Value (type:float) | Month (type:Date) |
|---|---|---|---|
| Product A | 10 | 250 | "File Name" (January-21) |
| Product B | 20 | 500 | "File Name" (January-21) |
| Product C | 15 | 400 | "File Name" (January-21) |
| Product A | 40 | 800 | "File Name" (February-21) |
| Product B | 25 | 700 | "File Name" (February-21) |
| Product C | 30 | 500 | "File Name" (February-21) |
有可能吗?对不起,我的英语不好,我不是母语人士。
非常感谢您的帮助!
编辑.1
这就是我合并、创建 csv 文件并使用 pandas 转换为数据框的方式:
import pandas as pd
import os
path = "/content/drive/MyDrive/Colab_Notebooks/sq_datas"
files = [file for file in os.listdir(path) if not file.startswith('.')] # Ignore hidden files
all_months_data = pd.DataFrame()
for file in files:
current_data = pd.read_excel(path+"/"+file)
all_months_data = pd.concat([all_months_data, current_data])
all_months_data.to_csv("/content/drive/MyDrive/Colab_Notebooks/sq_datas/all_months.csv", index=False)
所以,我的主要问题是创建一个循环,以便在将所有这些文件合并为一个之前添加月份列。
【问题讨论】:
-
欢迎来到Stack Overflow. 请注意这不是代码编写或辅导服务。我们可以帮助解决具体的技术问题,而不是对代码或建议的开放式请求。请编辑您的问题以显示您迄今为止尝试过的内容,以及您需要帮助的具体问题。请参阅How To Ask a Good Question 页面,详细了解如何最好地帮助我们。
-
哦,对不起,我将编辑这篇文章并展示我试图做什么以及如何合并这些文件。
标签: python pandas csv date glob