在使用Pandas处理数据时,有时需要多数据进行合并和连接操作,最常用的包括将多个分割的文件进行合并:
import pandas as pd
import glob
file_list = glob.glob('data/*')
df_list = []
for file in file_list:
df_temp = pd.read_csv(file, sep="import pandas as pd
import glob
file_list = glob.glob('data/*')
df_list = []
for file in file_list:
df_temp = pd.read_csv(file, sep="\001", header=None, na_values=['\\N'])
df_list.append(df_temp)
df = pd.concat(df_list, ignore_index=True)
1", header=None, na_values=['\\N'])
df_list.append(df_temp)
df = pd.concat(df_list, ignore_index=True)
Pandas中合并数据的方法总共有4个:
df.append()
df.append()比较好理解,就是在原有的数据中追加数据,语法为:df1.append(df2, sort=False),效果类似SQL中的UNION ALL。
pd.concat()
pd.concat() 相当于df.append()的加强版本。它除了支持合并多个DataFrame外,除了垂直(纵向)合并,还支持水平(横向)合并。
垂直(纵向)合并:pd.concat([df1, df2], sort = False)
水平(横向)合并:pd.concat([df1, df2], axis = 1, sort = False)
pandas.concat(objs, axis=0, join=’outer’, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
参数说明:
pd.merge()或df.merge()
pandas提供了一个类似于关系数据库的连接(join)操作的方法merage,可以根据一个或多个键将不同DataFrame中的行连接起来
DataFrame.merge(right, how=’inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False, validate=None)
参数说明:
df.join()
df.join()是dataframe内置的join方法,默认以index作为对齐的列。功能相对于merge()弱,这里就不做详细介绍了。
DataFrame.join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)
参数说明:
参考链接: