赞
踩
整篇文章使用pd代替pandas
import pandas as pd
有如下数据
# 将 df2拼接到 df1的右边
# 在列的方向上,直接合并! 在行的方向上,获取所有的行 ---- 在没有值的地方,使用NaN来填充!
ret = pd.concat(
objs=(df1, df2), # 传递一个元组对象
axis=1, # axis=1表示列的方向
join='outer', # 外连接
)
print('ret:\n', ret)
# 在列的方向上,直接合并! 在行的方向上,获取共同拥有的行!
ret = pd.concat(
objs=(df1, df2), # 传递一个元组对象
axis=1, # axis=1表示列的方向
join='inner', # 内连接
)
print('ret:\n', ret)
# 在行的方向上,直接拼接 ---在列的方向上,获取所有的列 ------在没有值的地方,用NaN来填充!
ret = pd.concat(
objs=(df1, df2), # 传递一个元组对象
axis=0, # axis=1表示列的方向, axis=0表示行的方向
join='outer', # 外连接
sort=True, # pandas的sort参数表示是否需要按照连接轴的索引进行排序,sort=True表示按索引进行排序,sort=False则表示不按索引进行排序
)
print('ret:\n', ret)
# 在行的方向上,直接拼接 ---在列的方向上,获取共同拥有的列!
ret = pd.concat(
objs=(df1, df2), # 传递一个元组对象
axis=0, # axis=1表示列的方向, axis=0表示行的方向
join='inner', # 外连接
sort=True,
)
print('ret:\n', ret)
ret = df1.append(df2, sort=True)
print('ret:\n', ret)
其效果和 pd.concat的 纵向合并 的 外连接 效果是一样的!
类似于sql的 外键连接,使用外键将多个 表格连接到一起
ret = pd.merge(
left=df1, # 左边的DataFrame
right=df2, # 右边的DataFrame
on='key', # 指定连接的外键
how='outer', # 外连接 ----以外键列所有的值作为连接键,如果没有对应值的位置使用NaN来填充
)
print('ret:\n', ret)
ret = pd.merge(
left=df1, # 左边的DataFrame
right=df2, # 右边的DataFrame
on='key', # 指定连接的外键
how='inner', # 内连接 ----以外键列共同拥有的值作为连接键!
)
print('ret:\n', ret)
ret = pd.merge(
left=df1, # 左边的DataFrame
right=df2, # 右边的DataFrame
on='key', # 指定连接的外键
how='left', # 左(外)连接 ----以左边的DataFrame的外键列的所有值来作为链接键,用右边的DataFrame来匹配,如果没有值能匹配上,用NaN来填充
)
print('ret:\n', ret)
ret = pd.merge(
left=df1, # 左边的DataFrame
right=df2, # 右边的DataFrame
on='key', # 指定连接的外键
how='right', # 右(外)连接 ----以右边的DataFrame的外键列的所有值来作为链接键,用左边的DataFrame来匹配,如果没有值能匹配上,用NaN来填充
)
print('ret:\n', ret)
ret = pd.merge(
left=df1, # 左边的DataFrame
right=df2, # 右边的DataFrame
on='key', # 指定连接的外键
how='outer', # 外连接 ----以外键列所有的值作为连接键,如果没有对应值的位置使用NaN来填充
)
print('ret:\n', ret)
ret = pd.merge(
left=df3, # 左边的DataFrame
right=df4, # 右边的DataFrame
left_on='Kx', # 指定的是左边的外键列
right_on='Ky', # 指定的是右边的外键列
how='outer', # 外连接 \ inner --内连接 \ left ---左(外)连接 \ right --有(外)连接
)
print('ret:\n', ret)
可以使用suffixes参数加以区分(默认为 ("_x", “_y”) )
ret = pd.merge(
left=df3, # 左边的DataFrame
right=df5, # 右边的DataFrame
left_on='Kx', # 指定的是左边的外键列
right_on='Ky', # 指定的是右边的外键列
how='outer', # 外连接 \ inner --内连接 \ left ---左(外)连接 \ right --有(外)连接
suffixes=('_I', '_II'), # 当左边存在同名的列,但是该列不是外键时,需要用到该参数加以区分!
)
print('ret:\n', ret)
ret = pd.merge(
left=df6, # 左边的DataFrame
right=df7, # 右边的DataFrame
on=['kk', 'kg'], # 指定链接的多个外键
how='outer', # 外连接 \ inner --内连接 \ left ---左(外)连接 \ right --有(外)连接
)
print('ret:\n', ret)
ret = pd.merge(
left=df6, # 左边的DataFrame
right=df7, # 右边的DataFrame
left_on=['k', 'g'], # 指定的是左边的外键列
right_on=['kk', 'kg'], # 指定的是右边的外键列
how='outer', # 外连接 \ inner --内连接 \ left ---左(外)连接 \ right --有(外)连接
)
print('ret:\n', ret)
ret = df6.join(df7)
print("ret:\n", ret)
数据分析和处理过程中若出现两份数据的内容几乎一致的情况,但是某些特征在其中一 张表上是完整的,而在另外一张表上的数据则是缺失的时候,可以用 combine_first 方法进行 重叠数据合并。
用一张表–去重叠另外一张表—前提:结构类似!
使用df2来重叠 df1中缺失的部分
ret = df1.combine_first(df2)
print('ret:\n', ret)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。