如何根据词典从字典中取出的值操纵文件夹的每个文件?基本上,说我的文件夹中有x文件。我使用熊猫重新格式化数据框架,添加包含报告日期的列,然后以相同名称和日期保存新文件。
import pandas as pd
import pathlib2 as Path
import os
source = Path("Users/Yay/AlotofFiles/April")
items = os.listdir(source)
d_dates = {'0401' : '04/1/2019', '0402 : 4/2/2019', '0403 : 04/03/2019'}
for item in items:
for key, value in d_dates.items():
df = pd.read_excel(item, header=None)
df.set_columns = ['A', 'B','C']
df[df['A'].str.contains("Awesome")]
df['Date'] = value
file_basic = "retrofile"
short_date = key
xlsx = ".xlsx"
file_name = file_basic + short_date + xlsx
df.to_excel(file_name)
我希望每个文件唯一并按日期进行分类。在这种情况下,我想拥有三个文件,例如" reatofile0401.xlsx",其中包含" 04/01/2019"的列,并且只有与原始文件相关的数据。实际结果几乎是循环每个单独的项目,创建三个不同的文件,然后将这些值移至下一个文件,重复并替换第一个迭代,直到我只剩下三个文件,这些文件是最后一个文件的副本。唯一不同的是,每个文件的日期都不同,并且以不同的方式命名。这就是我想要的,但它正在重复上一个文件中的数据。如果我删除第二个循环,它可以按照我想要的方式工作,但是无法根据我在字典中创建的值对其进行分类。
尝试以下内容。我只是使输入文件名明确说明发生了什么。您可以继续从源头使用您的。
input_filenames = [
'retrofile0401_raw.xlsx',
'retrofile0402_raw.xlsx',
'retrofile0403_raw.xlsx',]
date_dict = {
'0401': '04/1/2019',
'0402': '4/2/2019',
'0403': '04/03/2019'}
for filename in input_filenames:
date_key = filename[9:13]
df = pd.read_excel(filename, header=None)
df[df['A'].str.contains("Awesome")]
df['Date'] = date_dict[date_key]
df.to_excel('retrofile{date_key}.xlsx'.format(date_key=date_key))
filename[9:13]
从文件名中获取字符#9-12。这些是与您的日期代码相对应的。