ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pandas数据统计插件的连接函数concat()妙用,灵活处理数据对象!

2021-09-27 18:32:35  阅读:210  来源: 互联网

标签:插件 series 合并 dataframe DataFrame pd res 灵活处理 concat


大家知道在pandas的数据框架中,数据格式对象主要有两种,一种是Series,另一种则是比较常见的DataFrame数据对象。pandas.concat()连接函数主要是用于处理这两种对象的数据连接!

file

【阅读全文】

函数说明

'''
cancat()函数

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
          keys=None, levels=None, names=None, verify_integrity=False,
          copy=True)
          
参数说明:
objs:Series,DataFrame或Panel对象的序列或映射。如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueError。
axis:{0,1,...},默认为0。沿着连接的轴。
join:{'inner','outer'},默认为“outer”。如何处理其他轴上的索引。outer为联合和inner为交集。
ignore_index:boolean,default False。如果为True,请不要使用并置轴上的索引值。结果轴将被标记为0,...,n-1。如果要连接其中并置轴没有有意义的索引信息的对象,这将非常有用。注意,其他轴上的索引值在连接中仍然受到尊重。
join_axes:Index对象列表。用于其他n-1轴的特定索引,而不是执行内部/外部设置逻辑。
keys:序列,默认值无。使用传递的键作为最外层构建层次索引。如果为多索引,应该使用元组。
levels:序列列表,默认值无。用于构建MultiIndex的特定级别(唯一值)。否则,它们将从键推断。
names:list,default无。结果层次索引中的级别的名称。
verify_integrity:boolean,default False。检查新连接的轴是否包含重复项。这相对于实际的数据串联可能是非常昂贵的。
copy:boolean,default True。如果为False,请勿不必要地复制数据。
'''

Series 数据处理

普通合并

# 导入pandas数据处理库
import pandas as pd

# 初始化series_1数据对象
series_1 = pd.Series(['a', 'b','c'])

# 初始化series_2数据对象
series_2 = pd.Series(['c', 'd'])

# 合并series_1、series_2
res = pd.concat([series_1, series_2])

# 打印合并结果
print(res)
# 0    a
# 1    b
# 2    c
# 0    c
# 1    d

忽略索引合并

# 合并series_1、series_2,忽略索引
res = pd.concat([series_1, series_2],ignore_index=True)

# 打印合并结果
print(res)
# 0    a
# 1    b
# 2    c
# 3    c
# 4    d

添加分层索引合并

# 合并series_1、series_2,忽略索引
res = pd.concat([series_1, series_2],keys=['series_1','series_2'])

# 打印合并结果
print(res)
# series_1  0    a
#           1    b
#           2    c
# series_2  0    c
#           1    d

添加数据列合并

# 合并series_1、series_2,添加数据列名
res = pd.concat([series_1, series_2],keys=['series_1','series_2'],names=['Series ID', 'index'])

# 打印合并结果
print(res)
# Series ID  index
# series_1   0        a
#            1        b
#            2        c
# series_2   0        c
#            1        d

DataFrame 数据处理

合并两个相同列的DataFrame对象

# 创建DataFrame对象dataframe_1
dataframe_1 = pd.DataFrame([['coding', 'python'], ['type', '1']], columns=['名称', '类型'])

# 创建DataFrame对象dataframe_2
dataframe_2 = pd.DataFrame([['coding', 'java'], ['type', '2']], columns=['名称', '类型'])

# 合并两个列相同的DataFrame对象dataframe_1、dataframe_2
res = pd.concat([dataframe_1, dataframe_2])

# 打印合并DataFrame对象
print(res)
#        名称      类型
# 0  coding  python
# 1    type       1
# 0  coding    java
# 1    type       2

合并重叠的DataFrame

# 创建DataFrame对象dataframe_3
dataframe_3 = pd.DataFrame([['coding', 'java','91'], ['type', '2','93']], columns=['名称', '类型','评分'])

# 合并两个不相同的DataFrame对象dataframe_1、dataframe_3
# 合并时不存在的列则使用Nan值进行合并
res = pd.concat([dataframe_1, dataframe_3],sort=False)

# 打印合并DataFrame对象
print(res)
#        名称      类型   评分
# 0  coding  python  NaN
# 1    type       1  NaN
# 0  coding    java   91
# 1    type       2   93

# join='inner',去除重叠交叉的列
res = pd.concat([dataframe_1, dataframe_3],join='inner')
print(res)
# 0  coding  python
# 1    type       1
# 0  coding    java
# 1    type       2

本文由WeiXin公众号【python 集中营】一键发布,更多精彩文章、视频资料即可领取!

标签:插件,series,合并,dataframe,DataFrame,pd,res,灵活处理,concat
来源: https://www.cnblogs.com/lwsbc/p/15344225.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有