Python技术迷

Pandas 教程-Pandas 连接操作

整理:python架构师

Pandas能够通过不同种类的集合逻辑和关系代数功能组合Series、DataFrame和Panel对象。

concat()函数负责在DataFrame中沿轴执行连接操作。

语法:

pd.concat(objs,axis=0,join='outer',join_axes=None,  ignore_index=False)

参数:

objs: 它是一个序列或映射,包含Series或DataFrame对象。

如果在DataFrame中传递了一个字典,那么排序后的键将用作keys参数,并且将选择相应的值。如果存在任何非对象,那么它们将被丢弃,除非它们全部为none,在这种情况下,将引发ValueError。

  • axis: 沿着其进行连接的轴。

  • join: 处理另一个轴上的索引的方式。

  • join_axes: 索引对象的列表。使用特定索引,而不是执行内部或外部集合逻辑。

  • ignore_index: 布尔值,默认值为False。如果为True,则不使用连接轴上的索引值。结果轴将标记为0,...,n - 1。

返回值

在沿轴(axis=0)连接所有Series时,返回一个Series。如果*objs*包含至少一个DataFrame,则返回一个DataFrame。

示例1:
import pandas as pd  a_data = pd.Series(['p', 'q'])  b_data = pd.Series(['r', 's'])  pd.concat([a_data, b_data])
输出
0       p1       q0       r1       sdtype: object
示例2: 在上面的示例中,我们可以通过使用ignore_index参数来重置现有索引。下面的代码演示了ignore_index的工作原理。
import pandas as pd  a_data = pd.Series(['p', 'q'])  b_data = pd.Series(['r', 's'])  pd.concat([a_data, b_data], ignore_index=True)
输出
0       p1       q2       r3       sdtype: object
专属福利 
👉点击领取:最全Python资料合集
示例3: 我们可以通过使用keys参数在数据的最外层级别添加层次索引。
import pandas as pd  a_data = pd.Series(['p', 'q'])  b_data = pd.Series(['r', 's'])  pd.concat([a_data, b_data], keys=['a_data', 'b_data'])
输出
a_data    0      p          1      qb_data    0      r          1      sdtype: object
示例4: 我们可以使用names参数为索引键标签命名。下面的代码展示了names参数的工作原理。
import pandas as pd  a_data = pd.Series(['p', 'q'])  b_data = 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 name   Row IDa_data         0    p               1    qb_data         0    r               1    sdtype: object

使用append进行连接

append方法被定义为连接Series和DataFrame的有用快捷方式。

示例:
import pandas as pd  one = 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))
输出
     Name      subject_id     Marks_scored1    Parker     sub1           982    Smith      sub2           903    Allen      sub4           874    John       sub6           695    Parker     sub5           781    Billy      sub2           892    Brian      sub4           803    Bran       sub3           794    Bryce      sub6           975    Betty      sub5           88
Image
 1
Image
热门推荐

Image