本文概述
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)连接所有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 p
1 q
0 r
1 s
dtype: 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 p
1 q
2 r
3 s
dtype: object
示例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 q
b_data 0 r
1 s
dtype: object
示例4:我们可以使用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 ID
a_data 0 p
1 q
b_data 0 r
1 s
dtype: object
使用附加的串联
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_scored
1 Parker sub1 98
2 Smith sub2 90
3 Allen sub4 87
4 John sub6 69
5 Parker sub5 78
1 Billy sub2 89
2 Brian sub4 80
3 Bran sub3 79
4 Bryce sub6 97
5 Betty sub5 88
评论前必须登录!
注册