我正在尝试打开文件夹中的所有文件,将它们存储在数据框中,并使用另一个名为 Append.csv 的csv文件附加每个csv文件,并尝试使用其名称编写所有文件到另一个文件夹。
例如,我有5个csv文件保存在名为 CSV FILES FOLDER 的文件夹中。这些文件是 F1.csv , F2.csv , F3.csv , F4.csv 和 F5.csv 即可。我想要做的是使用pandas打开每个文件,我在for循环中执行此操作, Append.csv ,现在将其存储在名为 NEW CSV FILES FOLDER as:
F1_APPENDED.csv
F2_APPENDED.csv
F3_APPENDED.csv
F4_APPENDED.csv
换句话说,每个文件都添加了_APPENDED,然后保存了具有_APPENDED的新名称的文件。
我已经定义了此文件夹的路径,但无法保存。代码如下:
import pandas as pd
import glob
import os.path
import pathlib
path =r'C:\Users\Ahmed Ismail Khalid\Desktop\CSV FILES FOLDER'
allFiles = glob.glob(path + "/*.csv")
path1 = r'C:\Users\Ahmed Ismail Khalid\Desktop\Different Folder\Bitcoin Prices Hourly Based.csv'
outpath = r'C:\Users\Ahmed Ismail Khalid\Desktop\NEW CSV FILES FOLDER'
for f in allFiles:
file = open(f, 'r')
df1 = pd.read_csv(path1)
df2 = pd.read_csv(f)
output = pd.merge(df1, df2, how="inner", on="created_at")
df3 = output.created_at.value_counts().rename_axis('created_at').reset_index(name='count')
df3 = df3.sort_values(by=['created_at'])
#print(df3,'\n\n')
df3.to_csv(outpath+f, encoding='utf-8',index=False)
#print(f,'\n\n')
我该怎么做?我试图查找官方文档,但无法理解任何内容
任何和所有帮助将不胜感激
由于
答案 0 :(得分:0)
在这里,我在for循环中添加了一行,您只能获取文件名。在编写文件并指示输出.csv文件名时,可以使用它而不是文件的完整路径。
import pandas as pd
import glob
import os.path
import pathlib
path =r'C:\Users\Ahmed Ismail Khalid\Desktop\CSV FILES FOLDER'
allFiles = glob.glob(path + "/*.csv")
path1 = r'C:/Users/Ahmed Ismail Khalid/Desktop/Different Folder/Bitcoin Prices Hourly Based.csv'
# You need to have a slash at the end so it knows it's a folder
outpath = r'C:/Users/Ahmed Ismail Khalid/Desktop/NEW CSV FILES FOLDER/'
for f in allFiles:
file = open(f, 'r')
_, fname = os.path.split(f)
fname, ext = os.path.splittext(fname)
df1 = pd.read_csv(path1)
df2 = pd.read_csv(f)
output = pd.merge(df1, df2, how="inner", on="created_at")
df3 = output.created_at.value_counts().rename_axis('created_at').reset_index(name='count')
df3 = df3.sort_values(by=['created_at'])
#print(df3,'\n\n')
df3.to_csv(outpath+fname+'_appended.csv', encoding='utf-8',index=False)
#print(f,'\n\n')