本篇文章主要介绍了pandas中对series和dataframe对象进行连接的方法:pd.append()和pd.concat(),文中通过示例代码对这两种方法进行了详细的介绍,希望能对各位python小白的学习有所帮助。
一、df.append(df)
描述:append方法用以在表尾中添加新的行,并返回追加后的数据对象,若追加的行中存在原数据没有的列,会新增一列,并用nan填充;若追加的行数据中缺少原数据某列,同样以nan填充
语法:df.append(other, ignore_index=False, verify_integrity=False, sort=None)
参数说明:
- other:要追加的数据,可以是dataframe,series,字典,列表
- ignore_index:两个表的index是否有实际含义,默认为False,若ignore_index=True,表根据列名对齐合并,生成新的index
- verify_integrity:默认为False,若为True,创建具有重复项的索引时引发ValueError
- sort:默认为False,若为True如果’ self ‘和’ other '的列没有对齐,则对列进行排序。
下面对append方法的每个参数进行详细介绍:
第一个参数为other:要追加的数据,可以是dataframe,series,字典,列表甚至是元素;但前后类型要一致。
- 将数据追加到series
# 将数据追加到series <<< a=df.iloc[0,:] <<< b=df.iloc[6,:] <<< a.append(b) #需赋给新值,不改变原数组 A 0 B 1 C 2 D 3 E 4 F 5 A 36 B 37 C 38 D 39 E 40 F 41 dtype: int32 <<< a A 0 B 1 C 2 D 3 E 4 F 5 Name: S1, dtype: int32 <<< c=a.append(b) # 保存为c <<< c A 0 B 1 C 2 D 3 E 4 F 5 A 36 B 37 C 38 D 39 E 40 F 41 dtype: int32
- 将数据追加到dataframe
# 将数据追加到dataframe <<< a=df.iloc[0:2,:] <<< b=df.iloc[4:6,:] <<< c=a.append(b) # 注意是纵向追加,不支持横向追加 <<< c A B C D E F S1 0 1 2 3 4 5 S2 6 7 8 9 10 11 S5 24 25 26 27 28 29 S6 30 31 32 33 34 35
注意:获取单行得到的结果是一维数组,当一维数组[6,:]和二维数组[2,6]追加时,会得到8*7的数组,匹配不上的地方用NA填充。
# 将二维数组追加到一维数组 <<< a=df.iloc[0,:] <<< b=df.iloc[4:6,:] <<< c=a.append(b) <<< c 0 A B C D E F A 0.0 NaN NaN NaN NaN NaN NaN B 1.0 NaN NaN NaN NaN NaN NaN C 2.0 NaN NaN NaN NaN NaN NaN D 3.0 NaN NaN NaN NaN NaN NaN E 4.0 NaN NaN NaN NaN NaN NaN F 5.0 NaN NaN NaN NaN NaN NaN S5 NaN 24.0 25.0 26.0 27.0 28.0 29.0 S6 NaN 30.0 31.0 32.0 33.0 34.0 35.0
- 将数据追加到list
- list是一维:以列的形式来进行追加操作
- list是二维:以行的形式来进行追加操作
- list是三维:只添加一个值
注意:追加到列表时,是在原数组改动,是在原数组改动,是在原数组改动
# 列表追加到列表 <<< a=[] <<< b=df.iloc[6,:].tolist() <<< a.append(b) <<< a [[36, 37, 38, 39, 40, 41]]