[英]How can I use read_csv for each csv files even if it is empty ? Python Pandas
我有这段代码来尝试为每个 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] File File1.csv does not exist: 'File.csv'不明白为什么? 在 csv 文件夹中,我可以有没有数据的 csv 文件,只有列的名称。
谢谢你的时间 !
# necessary imports
import pandas as pd
import glob
假设您有一些非空的 csvs:
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
如果某些 csvs 有标题但没有数据,则有些也有数据。 重现情况:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.