pandas 合并dataframe 和series,Pandas DataFrame
____tz_zs
官网相关介绍:
https://只熊猫。pydata。org/pandas-docs/version/0.22/generated/pandas。串联。超文本标记语言
https://pandas.pydata.org/pandas-docs/stable/merging.html#。
#!/usr/震动的导师/python 2.7 #-*-编码:utf-8-*- @ author:tz _ zs import numpy as NP import pandas as PD data 1=[[11,12,13,14,15],[21,22,23,24,25],[31,32,33,34,35],[41,42,43,44,45]]date _ range 1=PD。date _ range(start= data frame(data=data1,index=date_range1,columns=[a , b , c , d ,])print df a b c d e 2018-07-01 11 12 13 14 152018-07-02 21 22 23 24 252018-07-03 31 32 33 34 35 2018-07-04 41 42 43 44 2g ],[3e , 3g , 3h],[4e , 4g , 4h ]data frame(data=data 3,index=date_range3,columns=[e , 3g , 3h ])print df3 e 3g 3h 2018-07-03 1e 1g 1h 2018-07-04 2e 2g 2h 2018-07-05 3e 3g 3h 2018-07-06 4e 4g 4h .
方法一:将系列或df的一列直接赋给原始df作为一列此种用法熊猫会自动将插入的数据对齐到原始df的索引,缺失值的地方为南,索引之外的值将舍弃掉。
df[ f ]=df2打印df a b c d e f 2018-07-01 11 12 13 14 15 NaN 2018-07-02 21 22 23 24 25 1.02018-07-03 31 32 33 34 35 2.02018-07-04 41 42 43 44 45 3.0 df[ 3g ]=df3[ 3g ]df
方法二:pd.concat此种方法,将完整的保留数据(不会丢弃数据,而是根据指数和列增加行列),并可指定合并的轴。
官网pandas.concat
pd.concat(objs,axis=0,join=outer ,join_axes=None,ignore_index=False,
密钥=无,级别=无,名称=无,验证完整性=假,
copy=True)
参数 axis默认为0
df4=pd.concat([df,df2,df3],axis=0)打印df4 0 a b c d e 3g 3h 2018-07-01楠11.0 12.0 13.0 14.0 15楠楠2018-07-02楠21.0 22.0 23.0 24.0 25楠楠2018-07-03楠31.0 32.0 33.0 34.0 35楠楠2018-07-04楠41.0 1h2018-楠楠楠楠楠2e 2g 2h2018-07-05楠楠楠楠楠3e 3g 3h2018-07-06楠楠楠楠楠楠4e 4g 4hdf4=pd.concat([df,df2,df3],axis=1)print df4 a b c d e f e e 3g 3h 2018-07-01 11.0 12.0 13.0 14.0 15.0楠楠楠楠楠
参数 join默认为join=outer 。如果改为内部的则得到的是表的交集
#加入默认为join=outer 。如果改为内部的则得到的是表的交集df6=pd.concat([df,df2,df3],axis=1,join= inner )print df5 a b c d e f e 3g 3h 2018-07-03 31 32 33 34 35 2 1e 1g 1h 2018-07-04 41 42 43 44 45 3 2e 2g 2h .
参数 ignore_index默认为假的,当设为ignore_index=True时,新df将不会使用拼接成员df的索引,而是重新生成一个从0 开始的指数值。
df5=pd.concat([df,df2,df3],axis=1,ignore _ index=True)print df5 0 1 2 3 4 5 6 7 82018-07-01 11.0 12.0 13.0 14.0 15.0楠楠楠楠2018-07-02 21.0 22.0 23.0 24.0 25.0 1 .0楠楠楠2018-07-03 31.0 31轴=0,ignore _ index=True)打印df5 0 a b c d e 3g 3h 0 NaN 11.0 12.0 13.0 14.0 15 NaN NaN 1 NaN 21.0 22.0 23.0 24.0 25 NaN NaN 31.0 32.0 33.0 34.0 35 NaN NaN 3 NaN 41.0 42.0 43.0 44.0 45 NaN NaN 4南南南南南南2e 2g 2h10南南南南南南3e 3g 3h11南南南南南南4e 4g 4h”.
参数 join_axes可指定指数来对齐数据。这样会切掉指定的指数之外的数据。
df5=pd.concat([df,df2,df3],axis=1,join _ axes=[df。index])打印df5 a b c d e f e 3g 3h 2018-07-01 11 12 13 14 15楠楠楠楠楠2018-07-02 21 22 23 24 25 1.0楠楠楠2018-07-03 31 32 33 34 34 35 2.0 1e 1g 1h 2018-18 join _ axes=[df2 . index])打印df5 a b c d e f e 3g 3h 2018-07-02 21.0 22.0 23.0 24.0 25.0 1楠楠楠2018-07-03 31.0 32.0 33.0 34.0 35.0 2 1e 1g 1h 2018-07-04 41.0 42.0 43.0 44.0 45.0 3 2e 2g join _ axes=[df3 . index])打印df5 a b c d e f e 3g 3h 2018-07-03 31.0 32.0 33.0 34.0 35.0 2.0 1e 1g 1h 2018-07-04 41.0 42.0 43.0 44.0 45.0 3.0 2e 2g 2h 2018-07-05楠楠楠楠楠4.0 3e 3g 3h 2018-07-07期数=4)])打印df5 a b c d e f e 3g 3h 2018-07-04 41.0 42.0 43.0 44.0 45.0 3.0 2e 2g 2h 2018-07-05南南南南南南4.0 3e 3g 3h2018-07-06南南南南4e 4g 4h2018-07-07南南南南南南南南 。
方法三:df1.append(df2)将被附加的对象添加到调用者的末尾(类似目录的方法)。
注意:如果调用者是数据帧而被附加的对象是系列,将会把系列作为一行添加到末尾。
系列和数据帧均有此方法。
df _ append _ df3=df。追加(df3)打印df _ append _ df3 3g 3h a b c d e 2018-07-01楠楠11.0 12.0 13.0 14.0 152018-07-02楠楠21.0 22.0 23.0 24.0 252018-07-03楠楠31.0 32.0 33.0 34.0 352018-07 南2018-07-04 3.0南南南2018-07-05 4.0南南南2018-07-03南1g 1h 1e2018-07-04南2g 2h 2e2018-07-05南3g 3h 3e2018-07-06南4g 4h 4e”.
目标
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。