Pandas的merge和groupby用法

2021-08-20 05:53:45 字數 2681 閱讀 4878

1.merge用來連線兩個dataframe物件,引數on選擇基於哪個列進行連線,how選擇內連線,左連線還是全連線的方式。merge操作類似於sql中的join操作。

[python] 

view plain

copy

import

pandas as pd  

df1 = pd.dataframe()  

df2 = pd.dataframe()  

print

df1  

print

df2  

#    data1 key

# 0      0   b

# 1      1   b

# 2      2   a

# 3      3   c

# 4      4   a

# 5      5   b

#    data2 key

# 0      0   a

# 1      1   b

# 2      2   a

# 3      3   b

# 4      4   d

df3 = pd.merge(df1,df2,on = 'key'

,how = 

'left'

)  print

df3  

#     data1 key  data2

# 0       0   b    1.0

# 1       0   b    3.0

# 2       1   b    1.0

# 3       1   b    3.0

# 4       2   a    0.0

# 5       2   a    2.0

# 6       3   c    nan

# 7       4   a    0.0

# 8       4   a    2.0

# 9       5   b    1.0

# 10      5   b    3.0

2.對於大資料,很可能要對於其中的部

分列進行聚合

,這裡使用groupby

[python] 

view plain

copy

import

numpy as np  

import

pandas as pd  

df = pd.dataframe()  

print

df  

#       data1     data2 key1 key2

# 0  0.336673  0.540336    a  one

# 1 -0.821839 -1.348654    a  two

# 2  1.066305  0.230884    b  one

# 3  0.788950 -0.540482    b  two

# 4 -0.872019 -0.813607    a  one

df1 = df[['data1'

,'data2'

]].groupby(df[

'key1'

]).sum()  

print

df1  

#          data1     data2

# key1

# a     0.827444  1.512656

# b    -0.060730 -0.461793

print

df.groupby(

'key1'

)[['data1'

,'data2'

]].sum()   

#簡便寫法

#          data1     data2

# key1

# a     0.827444  1.512656

# b    -0.060730 -0.461793

注意,這裡還可以利用字典對錶進行分組聚合,這裡以行聚合為例(以列分組聚合只要修改字典並把axis設定成1)

[python] 

view plain

copy

import

numpy as np  

import

pandas as pd  

df = pd.dataframe()  

print

df  

#       data1     data2 key1 key2

# 0  0.336673  0.540336    a  one

# 1 -0.821839 -1.348654    a  two

# 2  1.066305  0.230884    b  one

# 3  0.788950 -0.540482    b  two

# 4 -0.872019 -0.813607    a  one

:'one',1

:'one',2

:'two',3

:'two',4

:'two'

}  print

0).sum()  

#         data1     data2

# one  2.044990  0.916197

# two  2.310946 -2.240196

pandas中merge的用法

pandas中的merge和concat類似,但主要是用於 兩組有key column的資料 統一索引的資料.通常也被用在database的處理當中。import pandas as pd 定義資料集並列印出 left pd.dataframe right pd.dataframe print le...

pandas合併資料merge

snailtyan 本文主要是關於pandas的一些基本用法。usr bin env python coding utf 8 import pandas as pd import numpy as np test 1 定義資料 left pd.dataframe right pd.dataframe...

Pandas筆記七 合併merge

很像表的連線 res pd.merge left,right,on key 合併兩個dataframe 依據key這一列進行合併 也可以根據兩列進行連線 how和資料庫連線差不多 how inner outer left right res pd.merge left,right,on key1 k...