2 回答

TA贡献1812条经验 获得超5个赞
import pandas as pd
import os
def csv_folder_input(path,folder):
path = os.path.join(path,folder)
os.chdir(path)
counter=1
for filename in os.listdir(path):
if filename.endswith(".csv"):
with open(filename, 'r') as csvfile:
counter=counter+1
df = pd.read_csv(csvfile)
df['Visits']=int(filename.split('_')[2].split('.')[0])
df.to_csv(filename)
csv_folder_input(your path name,your folder name)
输入您的路径名,然后输入您的文件夹名称。我可以看到你的文件夹名称是 2019-v。在文件夹前输入适当的路径名,并确保输入适用于 MacOS 的正确路径格式。我相信它应该可以正常工作。

TA贡献2051条经验 获得超10个赞
首先,您需要一个文件列表:
from os import listdir
from os.path import isfile, join
import csv # You'll need this for the next step
mypath = 'path/to/csv/directory'
allfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
然后你想打开每个文件,添加列,然后再次保存。
from os import listdir
from os.path import isfile, join
import csv
mypath = 'path/to/csv/directory'
allfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
for file in allfiles:
# This will only work if your filenames are consistent.
# We split the name into a list, ['2019', 'v', '1.csv']
# then take the third item (index 2), and remove the
# last 4 characters.
number_at_end = file.split("-")[2][:-4]
# We open the file...
with open(file, newline='') as csvfile:
reader = csv.reader(csvfile)
# Add the column name to the first row, and
# add the value to each row...
for i, row in enumerate(reader):
if i == 0:
row.append('Visits')
else:
row.append(number_at_end)
# and then write the file back.
with open(file, newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(reader)
添加回答
举报