python中concat的用法_python pandas concat用法及代码示例

沿特定轴将 pandas 对象与其他轴上的可选设置逻辑连接起来。

也可以在串联轴上添加一层分层索引,如果标签在传递的轴号上相同(或重叠),则可能很有用。

参数:

objs:a sequence 或 mapping of Series 或 DataFrame objects如果通过了dict,则排序后的键将用作keys参数,除非传递该参数,否则将选择值(请参见下文)。除非它们都为None,否则所有None对象都将被静默删除,在这种情况下将引发ValueError。

axis:{0/’index’, 1/’columns’}, 默认为 0连接的轴。

join:{‘inner’, ‘outer’}, 默认为 ‘outer’如何处理其他轴上的索引。

ignore_index:bool, 默认为 False如果为True,则不要沿串联轴使用索引值。结果轴将标记为0,…,n-1。如果要串联对象时,串联轴没有有意义的索引信息,这将很有用。请注意,联接中仍会考虑其他轴上的索引值。

keys:sequence, 默认为 None如果通过了多个级别,则应包含元组。使用传递的键作为最外层级别来构造层次结构索引。

levels:list of sequences, 默认为 None用于构造MultiIndex的特定级别(唯一值)。否则,将从按键推断出它们。

names:list, 默认为 None生成的层次结构索引中的级别的名称。

verify_integrity:bool, 默认为 False检查新的串联轴是否包含重复项。相对于实际数据串联而言,这可能非常昂贵。

sort:bool, 默认为 False排序非串联轴(如果尚未对齐时)join是‘outer’。这在以下情况下无效join='inner',它已经保留了非串联轴的顺序。

0.23.0版中的新功能。

在1.0.0版中进行了更改:更改为默认情况下不排序。

copy:bool, 默认为 True如果为False,则不要不必要地复制数据。

返回值:

对象,objs类型连接所有时Series沿索引(轴= 0),aSeries返回。当objs包含至少一个DataFrame, 一种DataFrame返回。沿列连接时(轴= 1),aDataFrame返回。

注意:

键,级别和名称参数都是可选的。

可以找到此方法如何与其他用于组合 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

结合DataFrame通过传入沿x轴水平的对象axis=1。

>>> 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']

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值