1.merge用來連線兩個dataframe物件,引數on選擇基於哪個列進行連線,how選擇內連線,左連線還是全連線的方式。merge操作類似於sql中的join操作。
[python]
view plain
copy
import
pandas as pd
df1 = pd.dataframe()
df2 = pd.dataframe()
df1
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'
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()
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()
df1
# data1 data2
# key1
# a 0.827444 1.512656
# b -0.060730 -0.461793
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()
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'
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...