Pandas基础之对表格进行操作(一)

1.join join方法将两个DataFrame中不同的列索引合并成为一个DataFrame参数的意义与merge基本相同,只是join方法默认左外连接how=left

2.concat concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True) objs合并的对象,axis=0列对齐   

ignore_index=False 默认原来表格数据的索引   如果为True则忽略原来的索引,根据对表格的处理进行索引的修改

keys 为Dataframe添加键

join_axes=None 在新版本的pandas中不支持

如果想使用:把 pandas 降级到1.0.0 以下;

import pandas as pd
#join的使用
l={'姓名1':['赵宇','林级数','李鸿举'],'身高1':[170,195,168]}
r={'姓名2':['李华','戴维','陈宇航'],'身高2':[188,175,185]}
l_data=pd.DataFrame(l)
r_data=pd.DataFrame(r)
print("合并后的表:\n",l_data.join(r_data))
print('-'*30)
#concat的使用
data1=pd.Series([1,2,3],index=['a','b','c'])
data2=pd.Series([4,5,6],index=['d','e','f'])
data3=pd.concat([data1,data2])
print("使用concat合并后的数据:\n",data3)
print('-'*30)
data4=pd.concat([data1,data2],axis=1,sort=True)
print(data4)
print('-'*30)
#表格首尾相连
df1=pd.DataFrame({"A":["A0","A1","A2","A3","A4"],
                    "B":["B0","B1","B2","B3","B4"],
                    "C":["C0","C1","C2","C3","C4"],
                    "D":["D0","D1","D2","D3","D4"]})
df2=pd.DataFrame({"A":["A5","A6","A7","A8"],
                    "B":["B5","B6","B7","B8"],
                    "C":["C5","C6","C7","C8"],
                    "E":["E5","E6","E7","E8"]})
print(df1)
print('-'*30)
print(df2)
print('-'*30)
frames=[df1,df2]
result1=pd.concat(frames)
print("首尾相连结果:",result1)
print('-'*30)
result2=pd.concat(frames,keys=['x','y'])
print(result2)
print('-'*30)
#表格横向拼接 参数axis=1时,concat就是行对齐
result3=pd.concat(frames,axis=1)
print("横向拼接两个表后的结果:",result3)
print('-'*30)
#使用join join=inner结果为两表的交集 join=outer结果为两表的并集
result4=pd.concat(frames,join='inner')
print("两表交集\n",result4)
print('-'*30)
result5=pd.concat(frames,join='outer')
print("两表并集\n",result5)
print('-'*30)

运行结果:

D:\Python\p\Scripts\python.exe "D:\Python\python-learning\数据分析(二)\pandas中concat使用.py" 
合并后的表:
    姓名1  身高1  姓名2  身高2
0   赵宇  170   李华  188
1  林级数  195   戴维  175
2  李鸿举  168  陈宇航  185
------------------------------
使用concat合并后的数据:
 a    1
b    2
c    3
d    4
e    5
f    6
dtype: int64
------------------------------
     0    1
a  1.0  NaN
b  2.0  NaN
c  3.0  NaN
d  NaN  4.0
e  NaN  5.0
f  NaN  6.0
------------------------------
    A   B   C   D
0  A0  B0  C0  D0
1  A1  B1  C1  D1
2  A2  B2  C2  D2
3  A3  B3  C3  D3
4  A4  B4  C4  D4
------------------------------
    A   B   C   E
0  A5  B5  C5  E5
1  A6  B6  C6  E6
2  A7  B7  C7  E7
3  A8  B8  C8  E8
------------------------------
首尾相连结果:     A   B   C    D    E
0  A0  B0  C0   D0  NaN
1  A1  B1  C1   D1  NaN
2  A2  B2  C2   D2  NaN
3  A3  B3  C3   D3  NaN
4  A4  B4  C4   D4  NaN
0  A5  B5  C5  NaN   E5
1  A6  B6  C6  NaN   E6
2  A7  B7  C7  NaN   E7
3  A8  B8  C8  NaN   E8
------------------------------
      A   B   C    D    E
x 0  A0  B0  C0   D0  NaN
  1  A1  B1  C1   D1  NaN
  2  A2  B2  C2   D2  NaN
  3  A3  B3  C3   D3  NaN
  4  A4  B4  C4   D4  NaN
y 0  A5  B5  C5  NaN   E5
  1  A6  B6  C6  NaN   E6
  2  A7  B7  C7  NaN   E7
  3  A8  B8  C8  NaN   E8
------------------------------
横向拼接两个表后的结果:     A   B   C   D    A    B    C    E
0  A0  B0  C0  D0   A5   B5   C5   E5
1  A1  B1  C1  D1   A6   B6   C6   E6
2  A2  B2  C2  D2   A7   B7   C7   E7
3  A3  B3  C3  D3   A8   B8   C8   E8
4  A4  B4  C4  D4  NaN  NaN  NaN  NaN
------------------------------
两表交集
     A   B   C
0  A0  B0  C0
1  A1  B1  C1
2  A2  B2  C2
3  A3  B3  C3
4  A4  B4  C4
0  A5  B5  C5
1  A6  B6  C6
2  A7  B7  C7
3  A8  B8  C8
------------------------------
两表并集
     A   B   C    D    E
0  A0  B0  C0   D0  NaN
1  A1  B1  C1   D1  NaN
2  A2  B2  C2   D2  NaN
3  A3  B3  C3   D3  NaN
4  A4  B4  C4   D4  NaN
0  A5  B5  C5  NaN   E5
1  A6  B6  C6  NaN   E6
2  A7  B7  C7  NaN   E7
3  A8  B8  C8  NaN   E8
------------------------------

进程已结束,退出代码为 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值