Python中的pandas.concat()函数
pandas.concat()函数完成了所有繁重的工作,它与一个axisod Pandas对象一起执行连接操作,同时对其他axis上的索引(如果有的话)执行可选的集合逻辑(union或intersection)。
语法: concat(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)
参数:
- objs: 系列或数据框架对象
- axis: 连接的axis;默认=0
- join:处理其他axis上的索引的方式;默认=’外部’。
- ignore_index: 如果为真,则不使用串联axis上的索引值;默认=假
- keys: 序列,为结果索引添加一个标识符;默认 = 无
- levels:构建MultiIndex时使用的特定级别(唯一值);默认=无
- names: 所产生的分层索引中的等级名称;默认 = None
- verify_integrity:检查新的串联axis是否包含重复的内容;默认 = False
- sort:当连接为 “外部 “时,如果非连接axis尚未对齐,则对其进行排序;默认 = False
- copy: 如果是假的,就不要不必要地复制数据;默认 = True
返回:对象的类型(数据框架系列)。
例子1:用默认参数串联2个系列。
# importing the module
import pandas as pd
# creating the Series
series1 = pd.Series([1, 2, 3])
display('series1:', series1)
series2 = pd.Series(['A', 'B', 'C'])
display('series2:', series2)
# concatenating
display('After concatenating:')
display(pd.concat([series1, series2]))
输出:
例子2:水平连接2个系列,索引=1
# importing the module
import pandas as pd
# creating the Series
series1 = pd.Series([1, 2, 3])
display('series1:', series1)
series2 = pd.Series(['A', 'B', 'C'])
display('series2:', series2)
# concatenating
display('After concatenating:')
display(pd.concat([series1, series2],
axis = 1))
输出:
实例3:串联2个数据帧并分配键。
# importing the module
import pandas as pd
# creating the DataFrames
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
display('df1:', df1)
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7']})
display('df2:', df2)
# concatenating
display('After concatenating:')
display(pd.concat([df1, df2],
keys = ['key1', 'key2']))
输出:
例子4:水平串联2个数据帧,axis=1 .
# importing the module
import pandas as pd
# creating the DataFrames
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
display('df1:', df1)
df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
display('df2:', df2)
# concatenating
display('After concatenating:')
display(pd.concat([df1, df2],
axis = 1))
输出:
例子5:用ignore_index = True串联2个数据帧,这样新的索引值就会显示在串联的数据帧中。
# importing the module
import pandas as pd
# creating the DataFrames
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
display('df1:', df1)
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7']})
display('df2:', df2)
# concatenating
display('After concatenating:')
display(pd.concat([df1, df2],
ignore_index = True))
输出:
实例6:将一个数据框架与一个系列连接起来。
# importing the module
import pandas as pd
# creating the DataFrame
df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']})
display('df:', df1)
# creating the Series
series = pd.Series([1, 2, 3, 4])
display('series:', series)
# concatenating
display('After concatenating:')
display(pd.concat([df, series],
axis = 1))
输出: