Python-Pandas-Excel/CSV 数据处理大全整理 (三)

本文主要针对Python处理Excel & CSV文件的应用。所有代码均实例化代入且逐条备注解释。

全文逐条手工输入整理,可能会产生错误之处,还请指正。

之后会陆续整理 “爬虫” 与 “金融量化分析” 两个文档

#   --------------------------------------------------------------------------------------------
 

数据连接Concat/Join/Merge:


1. Concat:

基础数据1

A

B

C

D

0

A0

B0

C0

D0

1

A1

B1

C1

D1

2

A2

B2

C2

D2

3

A3

B3

C3

D3

基础数据2

A

B

C

D

4

A4

B4

C4

D4

5

A5

B5

C5

D5

6

A6

B6

C6

D6

7

A7

B7

C7

D7

基础数据3

B

D

F

2

B2

D2

F2

3

B3

D3

F3

6

B6

D6

F6

7

B7

D7

F7

数据1= pd.concat([基础数据1,基础数据2])    # 方法一
数据1= 基础数据1.append(基础数据2)         # 方法二

数据1

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

5

A5

B5

C5

D5

6

A6

B6

C6

D6

7

A7

B7

C7

D7

数据2= pd.concat([基础数据1,基础数据3],axis=1)     # 行对齐

数据2

A

B

C

D

B

D

F

0

A0

B0

C0

D0

NaN

NaN

NaN

1

A1

B1

C1

D1

NaN

NaN

NaN

2

A2

B2

C2

D2

B2

D2

F2

3

A3

B3

C3

D3

B3

D3

F3

6

NaN

NaN

NaN

NaN

B6

D6

F6

7

NaN

NaN

NaN

NaN

B7

D7

F7

数据3= pd.concat([基础数据1,基础数据2],keys=['基础数据1','基础数据2'])   # 方法一
数据3= pd.concat({'基础数据1':基础数据1,'基础数据2':基础数据2})          # 方法二

数据3

A

B

C

D

基础数据1

0

A0

B0

C0

D0

基础数据1

1

A1

B1

C1

D1

基础数据1

2

A2

B2

C2

D2

基础数据1

3

A3

B3

C3

D3

基础数据2

4

A4

B4

C4

D4

基础数据2

5

A5

B5

C5

D5

基础数据2

6

A6

B6

C6

D6

基础数据2

7

A7

B7

C7

D7

数据4=pd.concat([基础数据1,基础数据3],axis=1,join='inner')

数据4

A

B

C

D

B

D

F

2

A2

B2

C2

D2

B2

D2

F2

3

A3

B3

C3

D3

B3

D3

F3

数据5=pd.concat([基础数据1,基础数据3],axis=1,join_axis=[基础数据1.index])

数据5

A

B

C

D

B

D

F

0

A0

B0

C0

D0

NaN

NaN

NaN

1

A1

B1

C1

D1

NaN

NaN

NaN

2

A2

B2

C2

D2

B2

D2

F2

3

A3

B3

C3

D3

B3

D3

F3

2. Join:

基础数据1

A

B

key

0

A0

B0

K0

1

A1

B1

K1

2

A2

B2

K0

3

A3

B3

K1

基础数据2

C

D

K0

C0

D0

K1

C1

D1

数据1=数据1.join(数据2,on='key')

数据1

A

B

key

C

D

0

A0

B0

K0

C0

D0

1

A1

B1

K1

C1

D1

2

A2

B2

K0

C0

D0

3

A3

B3

K1

C1

D1

3. Merge:

基础数据1

A

B

key1

key2

0

A0

B0

K0

K0

1

A1

B1

K0

K1

2

A2

B2

K1

K0

3

A3

B3

K2

K1

基础数据2

C

D

key1

key2

0

C0

D0

K0

K0

1

C1

D1

K1

K0

2

C2

D2

K1

K0

3

C3

D3

K2

K0

数据1=pd.merge(基础数据1,基础数据2,on=['key1','key2'])

数据1

A

B

key1

key2

C

D

0

A0

B0

K0

K0

C0

D0

1

A1

B1

K1

K0

C1

D1

2

A2

B2

K1

K0

C2

D2

数据2=pd.merge(基础数据1,基础数据2,on=['key1','key2'] ,how='outer')   
# outer:全外连接,根据基础数据1&2的’key1’&’key2’两列,连接基础数据1&2

数据2

A

B

key1

key2

C

D

0

A0

B0

K0

K0

C0

D0

1

A1

B1

K0

K1

NaN

NaN

2

A2

B2

K1

K0

C1

D1

3

A2

B2

K1

K0

C2

D2

4

A3

B3

K2

K1

NaN

NaN

5

NaN

NaN

K2

K0

C3

D3

数据3=pd.merge(基础数据1,基础数据2,on=['key1','key2'] ,how='left')   
# left:左连接,根据基础数据2的’key1’&’key2’两列,连接基础数据1&2

数据3

A

B

key1

key2

C

D

0

A0

B0

K0

K0

C0

D0

1

A1

B1

K0

K1

NaN

NaN

2

A2

B2

K1

K0

C1

D1

3

A2

B2

K1

K0

C2

D2

4

A3

B3

K2

K1

NaN

NaN

数据4=pd.merge(基础数据1,基础数据2,on=['key1','key2'] ,how='right')  
# right:右连接,根据基础数据1的’key1’&’key2’两列,连接基础数据1&2

数据4

A

B

key1

key2

C

D

0

A0

B0

K0

K0

C0

D0

1

A2

B2

K1

K0

C1

D1

2

A2

B2

K1

K0

C2

D2

3

NaN

NaN

K2

K0

C3

D3

数据5=pd.merge(基础数据1,基础数据2)

数据6=pd.merge(基础数据1,基础数据2,on='姓名',how='right') 
# 根据基础数据1的姓名列,连接基础数据1&2

数据7=pd.merge(基础数据1,基础数据2,on='姓名',how='left')  
# 根据基础数据2的姓名列,连接基础数据1&2

数据8=pd.merge(基础数据1,基础数据2,on='姓名',how='outer') 
# 根据基础数据1&2的全部姓名列,连接基础数据1&2

数据9=pd.merge(基础数据1,基础数据2,left_on='姓名',right_index=True)     
# 根据基础数据1的姓名列,连接基础数据2的index列

数据10=pd.merge(基础数据1,基础数据2,on='k',suffixes=['_l','_x'])      
# suffixes为后缀参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值