python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas读取一个文件或某个文件夹下所有文件

如何用pandas读取一个文件或某个文件夹下所有文件

作者:旺仔的算法coding笔记

这篇文章主要介绍了如何用pandas读取一个文件或某个文件夹下所有文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

pandas读取一个文件或某个文件夹下所有文件

读取一个文件

直接用文件路径。

如果是读取某个文件夹下的所有文件,注意用os.path,逐个读取文件,把新读取到的Dataframe进行concate操作到总的Dataframe中去。

详细请见代码。

 
character_list =['1010011_i_u_prov',  '9010081_i_b_location']
#这是读取一个文件的,
# data=pd.read_csv('../data/10line_of_part-00000',sep='\t',header=None)
# 如果读取所有文件呢?如下
 
file_dir="../data/dt=20200807"
all_file_list=os.listdir(file_dir)
for single_file in all_file_list:
    # 逐个读取 
    single_data_frame=pd.read_csv(
            os.path.join(file_dir,single_file),sep='\t',header=None)
	if single_file ==all_file_list[0]:
		all_data_frame=single_data_frame
	else:  #进行concat操作       
         all_data_frame=pd.concat([all_data_frame,
                    single_data_frame],ignore_index=True)
 
# data.columns=character_list,给dataframe的属性重新命名。
all_data_frame.columns=character_list

备注:

data数据是从sql中select出来的结果。

注意:

分隔符要用\t,不然会报错!

pandas读取多个文件并合并到一起

先把文件位置放到一起,读取文件,再concat。

subdir=‘store'

file_names = []#存文件名
file_names.append(test1.csv')#继续添加文件名

csv_paths = []#存文件位置
for file_name in file_names:
    csv_path = join( '..','csv', subdir, file_name)#文件位置
    csv_paths.append(csv_path)
    break

df_csvs = []
for csv_path in csv_paths:
    df_tmp = pd.read_csv('%s' % csv_path, low_memory=False)
    df_csvs.append(df_tmp)
    
df_total = pd.concat(df_csvs)#合并成一个dataframe

#小技巧 非必须

#如列名为a.uid想改为uid 用以下方法操作

df_total.columns = [s[2:] for s in df_total.columns]
df_total.shape

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文