Pandas串联操作concat()用法介绍

本文概述

  • 句法
  • 参数
  • Return
Pandas能够通过不同种类的索引和关系代数功能的集合逻辑来组合Series, DataFrame和Panel对象。
concat()函数负责沿DataFrame中的轴执行串联操作。
句法
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False)

参数
  • objs:它是序列或DataFrame对象的序列或映射。
    如果我们在DataFrame中传递一个dict, 则排序后的键将用作keys < .strong> 参数, 在这种情况下将选择值。如果存在任何非对象, 除非它们全部都不存在, 否则它将被丢弃, 在这种情况下, 将引发ValueError。
  • 轴:这是一个串联的轴。
  • join:负责处理另一个轴上的索引。
  • join_axes:索引对象的列表。而不是执行内部或外部设置逻辑, 而是将特定索引用于其他(n-1)轴。
  • ignore_index:布尔值, 默认值为False
    如果为true, 则不使用串联轴上的索引值。结果轴将被标记为0, … , n-1。
Return当我们沿轴(axis = 0)连接所有Seri??es时, 将返回一个Series。如果objs包含至少一个DataFrame, 它将返回一个DataFrame。
范例1:
import pandas as pda_data = http://www.srcmini.com/pd.Series(['p', 'q'])b_data = http://www.srcmini.com/pd.Series(['r', 's'])pd.concat([a_data, b_data])

输出
0p1q0r1sdtype: object

示例2:在上面的示例中, 我们可以使用ignore_index参数重置现有索引。下面的代码演示了ignore_index的工作。
import pandas as pda_data = http://www.srcmini.com/pd.Series(['p', 'q'])b_data = http://www.srcmini.com/pd.Series(['r', 's'])pd.concat([a_data, b_data], ignore_index=True)

输出
0p1q2r3sdtype: object

示例3:我们可以使用keys参数在数据的最外层添加层次结构索引。
import pandas as pda_data = http://www.srcmini.com/pd.Series(['p', 'q'])b_data = http://www.srcmini.com/pd.Series(['r', 's'])pd.concat([a_data, b_data], keys=['a_data', 'b_data'])

输出
a_data0p1qb_data0r1sdtype: object

示例4:我们可以使用names参数来标记索引键。以下代码显示了名称参数的工作。
import pandas as pda_data = http://www.srcmini.com/pd.Series(['p', 'q'])b_data = http://www.srcmini.com/pd.Series(['r', 's'])pd.concat([a_data, b_data], keys=['a_data', 'b_data'])pd.concat([a_data, b_data], keys=['a_data', 'b_data'], names=['Series name', 'Row ID'])

输出
Series nameRow IDa_data0p1qb_data0r1sdtype: object

使用附加的串联
append方法被定义为连接Series和DataFrame的有用快捷方式。
例:
import pandas as pdone = pd.DataFrame({'Name': ['Parker', 'Smith', 'Allen', 'John', 'Parker'], 'subject_id':['sub1', 'sub2', 'sub4', 'sub6', 'sub5'], 'Marks_scored':[98, 90, 87, 69, 78]}, index=[1, 2, 3, 4, 5])two = pd.DataFrame({'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2', 'sub4', 'sub3', 'sub6', 'sub5'], 'Marks_scored':[89, 80, 79, 97, 88]}, index=[1, 2, 3, 4, 5])print (one.append(two))

【Pandas串联操作concat()用法介绍】输出
Namesubject_idMarks_scored1Parkersub1982Smithsub2903Allensub4874Johnsub6695Parkersub5781Billysub2892Briansub4803Bransub3794Brycesub6975Bettysub588

    推荐阅读