pandas 的concat操作

pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None,levels=None, names=None, verify_integrity=False, copy=True)
frame = [f1, df2, df3]
df = pd.concat(frame, keys=['x', 'y', 'z'])
keys是把连接的df命名以便于能快手找到连接的df名称: 比如你可以这样获取df2
df.loc['y']
还可以传递一个字典等于keys
pieces = {'x': df1, 'y': df2, 'z': df3}
df = pd.concat(pieces, sort=False)
要是这是取z, y可以这样做
df = pd.concat(pieces, keys=['z', 'y'])
df.index.levels
如果要合并多个文件使用列表
pd.concat([pd.read_excel(f) for f in files])
还可以进行选择按照那个轴进行连接
df = pd.concat([df1, df3], axis=1, sort=False)
还可以进行join选择是什么样的连接
df = pd.concat([df1, df2], join="inner")
假如只想用原始数据中的索引可以这样做
df = pd.concat([df1, df2], sort=False, axis=1).reindex(df1.index)
等同于
df = pd.concat([df1, df2.reindex(df1.index)], sort=False, axis=1)
还有一个方法等同于concat 中的axis=0这个方法是append我是用于循环的时候
df = df1.append(df2)
df = df1.append(df2, sort=False)
append也可以接受多个df
df = df1.append([df1, df2])   # 要用列表括起来
ignore_index 是忽略索引, 之后pandas会自动帮助你建一个索引
df = pd.concat(df1, ignore_index=True, sort=False)
df = df1.append(df1, sort=False, ignore_index=False)

 

上一篇:如何打通AD、企业微信、飞书、钉钉等社交账号及内外网应用身份?


下一篇:10个Python Pandas技巧,让工作更有效率!