我有这段代码尝试为每个csv文件执行此程序:
import pandas as pd
import os
directory_path_csv = r'CSV_Files'
for file in os.listdir(directory_path_csv):
if file.endswith(".csv"):
filename = file
df = pd.read_csv(filename, usecols= ['date','time', 'toto','tata'], parse_dates=[['date', 'time']])
但是我有此错误: FileNotFoundError:[Errno 2]文件File1.csv不存在:'File.csv'并且不理解为什么?在csv文件夹中,我可以创建仅包含列名而没有数据的csv文件。
感谢您的时间!
答案 0 :(得分:1)
# necessary imports
import pandas as pd
import glob
让我们说您有一些非空的csv:
for x in range(10):
pd.DataFrame(['exampleDf'+repr(x)]).to_csv('nonempty'+repr(x)+'.csv')
和一个空的:
# this is a shell command:
touch empty.csv
将所有csv文件名放入列表
csvs=glob.glob('*csv')
您可以遍历它们捕获EmptyDataErrors:
for csv in csvs:
try:
pd.read_csv(csv)
except pd.errors.EmptyDataError:
pass # or do whatever you want with empty csvs
如果某些csv具有标头但没有数据,则某些cv也具有数据。重新创建情况:
for x in range(10):
pd.DataFrame({'header':[1,2]}).to_csv('nonempty'+repr(x)+'.csv')
for x in range(10):
pd.DataFrame({'header':[]}).to_csv('empty'+repr(x)+'.csv')
然后可以:
csvs=glob.glob('*csv')
for csv in csvs:
df = pd.read_csv(csv)
if len(df.index)>0:
# then df is non-empty, do whatever with it
print(df)
else:
# then df is empty
print(df)