用法:
pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
沿特定轴连接 pandas 对象,并沿其他轴使用可选的设置逻辑。
还可以在连接轴上添加一层分层索引,如果标签在传递的轴号上相同(或重叠),这可能很有用。
- objs:Series 或 DataFrame 对象的序列或映射
如果传递了映射,则排序的键将用作
keys
参数,除非传递,在这种情况下将选择值(见下文)。任何 None 对象都将被静默删除,除非它们都是 None 在这种情况下将引发 ValueError 。- axis:{0/'index', 1/'columns'},默认 0
要连接的轴。
- join:{‘inner’, ‘outer’},默认 ‘outer’
如何处理其他轴(或轴)上的索引。
- ignore_index:布尔值,默认为 False
如果为 True,则不要沿连接轴使用索引值。结果轴将标记为 0, ..., n - 1。如果您要连接对象,而连接轴没有有意义的索引信息,这将非常有用。请注意,连接中仍然尊重其他轴上的索引值。
- keys:序列,默认无
如果通过了多个级别,则应包含元组。使用传递的键作为最外层构建层次索引。
- levels:序列列表,默认无
用于构造 MultiIndex 的特定级别(唯一值)。否则,它们将从 key 中推断出来。
- names:列表,默认无
生成的分层索引中的级别名称。
- verify_integrity:布尔值,默认为 False
检查新的连接轴是否包含重复项。相对于实际的数据连接,这可能非常昂贵。
- sort:布尔值,默认为 False
如果
join
为 ‘outer’ 时未对齐,则对非串联轴进行排序。这在join='inner'
时无效,它已经保留了非串联轴的顺序。- copy:布尔值,默认为真
如果为 False,则不要不必要地复制数据。
- 对象,对象类型
当沿索引 (axis=0) 连接所有
Series
时,将返回Series
。当objs
至少包含一个DataFrame
时,返回一个DataFrame
。沿列连接时 (axis=1),返回DataFrame
。
参数:
返回:
注意:
键、级别和名称参数都是可选的。
可以在此处找到有关此方法如何与其他组合 pandas 对象的工具相适应的演练。
例子:
合并两个
Series
。>>> s1 = pd.Series(['a', 'b']) >>> s2 = pd.Series(['c', 'd']) >>> pd.concat([s1, s2]) 0 a 1 b 0 c 1 d dtype:object
通过将
ignore_index
选项设置为True
来清除现有索引并在结果中将其重置。>>> pd.concat([s1, s2], ignore_index=True) 0 a 1 b 2 c 3 d dtype:object
使用
keys
选项在数据的最外层添加层次索引。>>> pd.concat([s1, s2], keys=['s1', 's2']) s1 0 a 1 b s2 0 c 1 d dtype:object
使用
names
选项标记您创建的索引键。>>> pd.concat([s1, s2], keys=['s1', 's2'], ... names=['Series name', 'Row ID']) Series name Row ID s1 0 a 1 b s2 0 c 1 d dtype:object
将两个具有相同列的
DataFrame
对象组合在一起。>>> df1 = pd.DataFrame([['a', 1], ['b', 2]], ... columns=['letter', 'number']) >>> df1 letter number 0 a 1 1 b 2 >>> df2 = pd.DataFrame([['c', 3], ['d', 4]], ... columns=['letter', 'number']) >>> df2 letter number 0 c 3 1 d 4 >>> pd.concat([df1, df2]) letter number 0 a 1 1 b 2 0 c 3 1 d 4
将
DataFrame
对象与重叠列组合并返回所有内容。交叉点外的列将填充NaN
值。>>> df3 = pd.DataFrame([['c', 3, 'cat'], ['d', 4, 'dog']], ... columns=['letter', 'number', 'animal']) >>> df3 letter number animal 0 c 3 cat 1 d 4 dog >>> pd.concat([df1, df3], sort=False) letter number animal 0 a 1 NaN 1 b 2 NaN 0 c 3 cat 1 d 4 dog
将
DataFrame
对象与重叠列组合在一起,并仅返回那些通过将inner
传递给join
关键字参数来共享的对象。>>> pd.concat([df1, df3], join="inner") letter number 0 a 1 1 b 2 0 c 3 1 d 4
通过传入
axis=1
沿 x 轴水平组合DataFrame
对象。>>> df4 = pd.DataFrame([['bird', 'polly'], ['monkey', 'george']], ... columns=['animal', 'name']) >>> pd.concat([df1, df4], axis=1) letter number animal name 0 a 1 bird polly 1 b 2 monkey george
使用
verify_integrity
选项防止结果包含重复的索引值。>>> df5 = pd.DataFrame([1], index=['a']) >>> df5 0 a 1 >>> df6 = pd.DataFrame([2], index=['a']) >>> df6 0 a 2 >>> pd.concat([df5, df6], verify_integrity=True) Traceback (most recent call last): ... ValueError:Indexes have overlapping values:['a']
相关用法
- Python pandas.concat()用法及代码示例
- Python pandas.core.resample.Resampler.nearest用法及代码示例
- Python pandas.core.groupby.GroupBy.nth用法及代码示例
- Python pandas.core.groupby.SeriesGroupBy.unique用法及代码示例
- Python pandas.core.window.rolling.Window.mean用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.hist用法及代码示例
- Python pandas.core.groupby.SeriesGroupBy.nlargest用法及代码示例
- Python pandas.core.window.expanding.Expanding.kurt用法及代码示例
- Python pandas.core.window.expanding.Expanding.sum用法及代码示例
- Python pandas.core.window.expanding.Expanding.median用法及代码示例
- Python pandas.core.window.expanding.Expanding.std用法及代码示例
- Python pandas.core.window.rolling.Window.std用法及代码示例
- Python pandas.core.window.rolling.Rolling.aggregate用法及代码示例
- Python pandas.core.window.expanding.Expanding.sem用法及代码示例
- Python pandas.core.window.expanding.Expanding.corr用法及代码示例
- Python pandas.core.groupby.DataFrameGroupBy.resample用法及代码示例
- Python pandas.core.window.expanding.Expanding.aggregate用法及代码示例
- Python pandas.core.resample.Resampler.transform用法及代码示例
- Python pandas.core.window.expanding.Expanding.count用法及代码示例
- Python pandas.core.window.rolling.Rolling.sum用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.concat。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。