美文网首页
Pandas 6. 合并 concatenating

Pandas 6. 合并 concatenating

作者: bokli_dw | 来源:发表于2020-02-03 17:05 被阅读0次

Pandas 6 合并 concatenating

合并两个dataframe,横向纵向均可以

concatenating

import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])
df3 = pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d'])

通常数据合并时上下合并,因为三个的属性一样,合并的方法

res=pd.concat([df1,df2,df3],axis=0)
axis=0时竖向合并,1时横向合并
print(pd.concat([df1,df2,df3],axis=0))

此时会出现索引值时重复的数据,如下图。ignore_index=True,即忽略掉原有的索引的顺序

print(pd.concat([df1,df2,df3],axis=0,ignore_index=True))

method2 cocatenating中的join功能

  • join有两种形式,inner和outer
  • join,['inner','outer']
df4 = pd.DataFrame(np.ones((3,4))*0,index=[1,2,3],columns=['a','b','c','d'])
df5 = pd.DataFrame(np.ones((3,4))*1,index=[2,3,4],columns=['b','c','d','e'])
print(df4)
print(df5)

join功能把不一样的东西处理一下

res = pd.concat([df4,df5],axis=0)
print(res)

此时默认的是outer模式,改成inner

print(pd.concat([df4,df5],axis=0,join='inner'))

再处理序号

print(pd.concat([df4,df5],axis=0,join='inner',ignore_index=True))

concat属性有很多,还有merge,也是进行数据的合并,交叉处理
join_axes:

print(pd.concat([df4,df5],axis=1,join_axes=[df4.index]))

axis=1 左右合并 axis=0:上下合并;此时出现矛盾


print(pd.concat([df4,df5],axis=1))

此时的输出数据保留全部的索引值

append 默认竖向加数据
自己可以只当数据的方向
df4是主要的数据,现在把df5的数据加在df4的后面

print('---------------------------------')
print(df4.append(df5,ignore_index=True))

append不止一个时候,只需要加入一个列表,把他们都囊括进去,df5-->[df5,df6]即可,就是把df5,df6append到df4的下面

print('---------------------------------')
print(df4.append([df5,df3],ignore_index=True))
print('---------------------------------')

dateframe中添加一行数据,办法是:dataframe下面添加一个series

df6 = pd.Series([1,2,3,4],index=['a','b','c','d'])
print(df4.append(df6,ignore_index=True))

此时不用加入axis=0
输出结果在最后一行加入一个数据行

image.png
image.png
image.png

相关文章

网友评论

      本文标题:Pandas 6. 合并 concatenating

      本文链接:https://www.haomeiwen.com/subject/eetkxhtx.html