python 利用dataframe实现连接
merge列连接
result_dataframe = pd.merge(left_dataframe, right_dataframe, how='outer', on=['key1', 'key2'])
join列连接
result_dataframe = left_dataframe.join(right_dataframe, on=['key1', 'key2'], how='inner')
append行连接
result_df= df1.append(df4)
result_df = df1.append([df2, df3])
concat行连接
frames = [df1, df2, df3]
result = pd.concat(frames)
*备注:
DataFrame.merge(left,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)
参数含义:
1:left、right DataFrame或命名为Series
需要合并的DataFrame
2:how {‘left’,‘right’,‘outer’,‘inner’},默认’inner’
left:仅使用左DataFrame中的键,类似于SQL左外连接; 保留关键顺序。
right:仅使用右DataFrame中的键,类似于SQL右外连接; 保留关键顺序。
outer:使用来自两个DataFrame的键的并集,类似于SQL全外连接; 按字典顺序排序键。
inner:使用两个DataFrame的键交集,类似于SQL内连接; 保留左键的顺序。
3:on 标签或列表
以一列的字段作为合并基准唯一值
4:left_on、right_on 标签或列表,或类似数组
在左侧/右侧连接的列或者索引
5:left_index、right_index 标签或列表,或类似数组
以左侧或者右侧索引作为连接
6:sort bool,默认为False
在结果DataFrame中按字典顺序对连接键进行排序。如果为False,则连接键的顺序取决于连接类型(关键字 如何)
7:suffixes (str,str)的元组,默认(‘x’,’ y’)
合并后的DataFrame重复列名会加上_x’,’ y’后缀
d.concat(objs, axis=0, join=‘outer’, join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
objs︰ 一个序列或系列、 综合或面板对象的映射。如果字典中传递,将作为键参数,使用排序的键,除非它传递,在这种情况下的值将会选择 (见下文)。任何没有任何反对将默默地被丢弃,除非他们都没有在这种情况下将引发 ValueError。
axis: {0,1,…},默认值为 0。要连接沿轴。
join: {‘内部’、 ‘外’},默认 ‘外’。如何处理其他 axis(es) 上的索引。联盟内、 外的交叉口。
ignore_index︰ 布尔值、 默认 False。如果为 True,则不要串联轴上使用的索引值。由此产生的轴将标记 0,…,n-1。这是有用的如果你串联串联轴没有有意义的索引信息的对象。请注意在联接中仍然受到尊重的其他轴上的索引值。
join_axes︰ 索引对象的列表。具体的指标,用于其他 n-1 轴而不是执行内部/外部设置逻辑。
keys︰ 序列,默认为无。构建分层索引使用通过的键作为最外面的级别。如果多个级别获得通过,应包含元组。
levels︰ 列表的序列,默认为无。具体水平 (唯一值) 用于构建多重。否则,他们将推断钥匙。
names︰ 列表中,默认为无。由此产生的分层索引中的级的名称。
verify_integrity︰ 布尔值、 默认 False。检查是否新的串联的轴包含重复项。这可以是相对于实际数据串联非常昂贵。
副本︰ 布尔值、 默认 True。如果为 False,请不要,不必要地复制数据。
参考:
https://blog.csdn.net/qq_42707449/article/details/81116656
https://blog.csdn.net/sdwww3238/article/details/86702971
推荐阅读
-
详解利用Python scipy.signal.filtfilt() 实现信号滤波
-
python 给DataFrame增加index行名和columns列名的实现方法
-
Python利用heapq实现一个优先级队列的方法
-
Python3连接MySQL(pymysql)模拟转账实现代码
-
python3利用Socket实现通信的方法示例
-
利用python和百度地图API实现数据地图标注的方法
-
Python3实现连接SQLite数据库的方法
-
利用perl、python、php、shell、sed、awk、c 实现字符串的翻转
-
利用redis实现一个Queue(使其接口同python的内置队列接口一致)
-
Python OpenCV利用笔记本摄像头实现人脸检测