python DataFrame合併方法

2021-09-10 09:18:16 字數 3318 閱讀 4642

python 合併dataframe方法

dataframe.merge(left,right, how=『inner』, on=none, left_on=none, right_on=none, left_index=false, right_index=false, sort=false, suffixes=(』_x』, 'y』), copy=true, indicator=false, validate=none)

引數含義:

1:left、right dataframe或命名為series

需要合併的dataframe

2:how ,預設』inner』

left:僅使用左dataframe中的鍵,類似於sql左外連線; 保留關鍵順序。

right:僅使用右dataframe中的鍵,類似於sql右外連線; 保留關鍵順序。

outer:使用來自兩個dataframe的鍵的並集,類似於sql全外連線; 按字典順序排序鍵。

inner:使用兩個dataframe的鍵交集,類似於sql內連線; 保留左鍵的順序。

3:on 標籤或列表

以一列的字段作為合併基準唯一值

4:left_on、right_on 標籤或列表,或類似陣列

在左側/右側連線的列或者索引

5:left_index、right_index 標籤或列表,或類似陣列

以左側或者右側索引作為連線

6:sort bool,預設為false

在結果dataframe中按字典順序對連線鍵進行排序。如果為false,則連線鍵的順序取決於連線型別(關鍵字 如何)

7:suffixes (str,str)的元組,預設(『x』,』 y』)

合併後的dataframe重複列名會加上_x』,』 y』字尾

例子1.預設直接合併的方法

import numpy as np

import pandas as pd

df1 = pd.dataframe(

)df2 = pd.dataframe(

)df3=pd.merge(df1,df2)

print

(df1,df2,df3)

#輸出結果

df1

key data1

0 b 0

1 b 1

2 a 2

3 c 3

df2 key data2

0 a 5

1 b 6

2 d 7

df3 key data1 data2

0 b 0

61 b 1

62 a 2

5

2.how引數

df4=pd.merge(df1,df2,how=

'outer'

)#外鏈結 即全部資料都選中,無值則填充空值

df4 key data1 data2

0 b 0.0

6.01 b 1.0

6.02 a 2.0

5.03 c 3.0 nan

4 d nan 7.0

df4=pd.merge(df1,df2,how=

'left'

)#左連線

df4 key data1 data2

0 b 0

6.01 b 1

6.02 a 2

5.03 c 3 nan

3.left_on,right_on引數

df_1 = pd.dataframe(

)df_2 = pd.dataframe(

)df5=pd.merge(df_1,df_2,left_on=

'key1'

,right_on=

'key2'

)#類似於以左dataframe的key1的值和右dataframekey2的值做連線

df5 key1 data1 key2 data2

0 b 0 b 6

1 b 1 b 6

2 a 2 a 5

4.left_index,right_index 以dataframe索引做連線

left= pd.dataframe(

)right =pd.dataframe(

, index=

['a'

,'b'])

df6=pd.merge(left, right, left_on=

'key'

, right_index=

true

)#以key和right的索引作為連線

left

key value

0 a 0

1 b 1

2 a 2

3 a 3

4 b 4

5 c 5

right

group_val

a 3.5

b 7.0

df6 key value group_val

0 a 0

3.52 a 2

3.53 a 3

3.51 b 1

7.04 b 4

7.0

5.suffixes和sort引數

left= pd.dataframe(

)right =pd.dataframe(

, index=

['a'

,'b'])

df6=pd.merge(left, right, left_on=

'key'

, right_index=

true

,sort=

false

)df6

key value_x value_y

0 a 0

3.52 a 2

3.53 a 3

3.51 b 1

7.04 b 4

7.0

python dataframe數值替換

需求 將csv檔案中的值為 8888的因子值替換為當日全市場因子的中值 原始資料 解析 實現 import pandas as pd def filter2median invalid number with open r c users administrator documents wechat...

Python Dataframe 兩列相除

import pandas as pd df pd.read csv 離線資料.csv 新建乙個dataframe df data pd.dataframe columns 總數 人數 平均值 df data 總數 人數 df df data 平均值 df data.lambda x x 總數 x ...

python DataFrame匯出到檔案

outputpath d users chen lib desktop fenci.csv df.to csv outputpath,sep index false,header false 2.dataframe匯出到xlsx檔案 outputpath d users chen lib deskt...