91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pandas中merge如何合并DataFrame

發布時間:2021-11-30 10:44:32 來源:億速云 閱讀:160 作者:小新 欄目:大數據

小編給大家分享一下Pandas中merge如何合并DataFrame,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

merge合并DataFrame

import pandas as pd

left=pd.DataFrame({
    'key':['k0','k1','k2','k3','k4','k5'],
    'A':['A0','A1','A2','A3','A4','A5'],
    'B':['B0','B1','B2','B3','B4','B5']
})


right=pd.DataFrame({
    'key':['k0','k1','k2','k3','k4','k5'],
    'C':['C0','C1','C2','C3','C4','C5'],
    'D':['D0','D1','D2','D3','D4','D5']
})
print(left)
print('-'*20)
print(right)
  key   A   B
0  k0  A0  B0
1  k1  A1  B1
2  k2  A2  B2
3  k3  A3  B3
4  k4  A4  B4
5  k5  A5  B5
--------------------
  key   C   D
0  k0  C0  D0
1  k1  C1  D1
2  k2  C2  D2
3  k3  C3  D3
4  k4  C4  D4
5  k5  C5  D5
# 合并
res=pd.merge(left,right)
print(res)

print('-'*20)
# 指定合并的key
res=pd.merge(left,right,on='key')
print(res)
  key   A   B   C   D
0  k0  A0  B0  C0  D0
1  k1  A1  B1  C1  D1
2  k2  A2  B2  C2  D2
3  k3  A3  B3  C3  D3
4  k4  A4  B4  C4  D4
5  k5  A5  B5  C5  D5
--------------------
  key   A   B   C   D
0  k0  A0  B0  C0  D0
1  k1  A1  B1  C1  D1
2  k2  A2  B2  C2  D2
3  k3  A3  B3  C3  D3
4  k4  A4  B4  C4  D4
5  k5  A5  B5  C5  D5
left = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'],
                     'key2': ['K0', 'K1', 'K2', 'K3'],
                    'A': ['A0', 'A1', 'A2', 'A3'], 
                    'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'],
                      'key2': ['K0', 'K1', 'K2', 'K4'],
                    'C': ['C0', 'C1', 'C2', 'C3'], 
                    'D': ['D0', 'D1', 'D2', 'D3']})
print(left)
print('-'*20)
print(right)
  key1 key2   A   B
0   K0   K0  A0  B0
1   K1   K1  A1  B1
2   K2   K2  A2  B2
3   K3   K3  A3  B3
--------------------
  key1 key2   C   D
0   K0   K0  C0  D0
1   K1   K1  C1  D1
2   K2   K2  C2  D2
3   K3   K4  C3  D3
# 默認取交集 how='inner'
res=pd.merge(left,right,on=['key1','key2'])
print(res)
  key1 key2   A   B   C   D
0   K0   K0  A0  B0  C0  D0
1   K1   K1  A1  B1  C1  D1
2   K2   K2  A2  B2  C2  D2
# how='outer' 取并集
res=pd.merge(left,right,on=['key1','key2'],how='outer')
print(res)
  key1 key2    A    B    C    D
0   K0   K0   A0   B0   C0   D0
1   K1   K1   A1   B1   C1   D1
2   K2   K2   A2   B2   C2   D2
3   K3   K3   A3   B3  NaN  NaN
4   K3   K4  NaN  NaN   C3   D3
# 顯示合并數據中數據來自哪個表
res=pd.merge(left,right,on=['key1','key2'],how='outer',indicator=True)
print(res)
  key1 key2    A    B    C    D      _merge
0   K0   K0   A0   B0   C0   D0        both
1   K1   K1   A1   B1   C1   D1        both
2   K2   K2   A2   B2   C2   D2        both
3   K3   K3   A3   B3  NaN  NaN   left_only
4   K3   K4  NaN  NaN   C3   D3  right_only
# 左鏈接
res=pd.merge(left,right,on=['key1','key2'],how='left')
print(res)
print('-'*30)
# 右鏈接
res=pd.merge(left,right,on=['key1','key2'],how='right')
print(res)
  key1 key2   A   B    C    D
0   K0   K0  A0  B0   C0   D0
1   K1   K1  A1  B1   C1   D1
2   K2   K2  A2  B2   C2   D2
3   K3   K3  A3  B3  NaN  NaN
------------------------------
  key1 key2    A    B   C   D
0   K0   K0   A0   B0  C0  D0
1   K1   K1   A1   B1  C1  D1
2   K2   K2   A2   B2  C2  D2
3   K3   K4  NaN  NaN  C3  D3

join 拼接列,主要用于索引上的合并

left = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3'],
                    'key': ['K0', 'K1', 'K0', 'K1']})

right = pd.DataFrame({'C': ['C0', 'C1'],
                       'D': ['D0', 'D1']},
                       index=['K0', 'K1'])

print(left)
print('-'*15)
print(right)
    A   B key
0  A0  B0  K0
1  A1  B1  K1
2  A2  B2  K0
3  A3  B3  K1
---------------
     C   D
K0  C0  D0
K1  C1  D1
res=left.join(right,on='key')
print(res)
    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

Pandas數據透視表

df = pd.DataFrame({'Month': ["January", "January", "January", "January", 
                                  "February", "February", "February", "February", 
                                  "March", "March", "March", "March"],
                   'Category': ["Transportation", "Grocery", "Household", "Entertainment",
                                "Transportation", "Grocery", "Household", "Entertainment",
                                "Transportation", "Grocery", "Household", "Entertainment"],
                   'Amount': [74., 235., 175., 100., 115., 240., 225., 125., 90., 260., 200., 120.]})
print(df)
       Month        Category  Amount
0    January  Transportation    74.0
1    January         Grocery   235.0
2    January       Household   175.0
3    January   Entertainment   100.0
4   February  Transportation   115.0
5   February         Grocery   240.0
6   February       Household   225.0
7   February   Entertainment   125.0
8      March  Transportation    90.0
9      March         Grocery   260.0
10     March       Household   200.0
11     March   Entertainment   120.0
# 構造一個索引為Category 列為Month 值為Amount的表
res=df.pivot(index='Category',columns='Month',values='Amount')
print(res)
Month           February  January  March
Category                                
Entertainment      125.0    100.0  120.0
Grocery            240.0    235.0  260.0
Household          225.0    175.0  200.0
Transportation     115.0     74.0   90.0
# 按列求和
res.sum(axis=0)
Month
February    705.0
January     584.0
March       670.0
dtype: float64
# 按行求和
res.sum(axis=1)
Category
Entertainment     345.0
Grocery           735.0
Household         600.0
Transportation    279.0
dtype: float64

pivot_table

df=pd.read_csv('./pandas/data/titanic.csv')
df.columns
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
       'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
      dtype='object')
#默認求平均值
res=df.pivot_table(index='Sex',columns='Pclass',values='Fare')
print(res)
Pclass           1          2          3
Sex                                     
female  106.125798  21.970121  16.118810
male     67.226127  19.741782  12.661633
# 求最大值
res=df.pivot_table(index='Sex',columns='Pclass',values='Fare',aggfunc='max')
print(res)
Pclass         1     2      3
Sex                          
female  512.3292  65.0  69.55
male    512.3292  73.5  69.55
# 統計個數
res=df.pivot_table(index='Sex',columns='Pclass',values='Fare',aggfunc='count')
print(res)
print('-'*20)
# crosstab 統計個數
res=pd.crosstab(index=df['Sex'],columns=df['Pclass'])
print(res)
Pclass    1    2    3
Sex                  
female   94   76  144
male    122  108  347
--------------------
Pclass    1    2    3
Sex                  
female   94   76  144
male    122  108  347
# 求平均值
res=df.pivot_table(index='Sex',columns='Pclass',values='Fare',aggfunc='mean')
print(res)
Pclass           1          2          3
Sex                                     
female  106.125798  21.970121  16.118810
male     67.226127  19.741782  12.661633
# 計算未成年男女存活率
df['minor']=df['Age']<=18
res=df.pivot_table(index='minor',columns='Sex',values='Survived',aggfunc='mean')
print(res)
Sex      female      male
minor                    
False  0.760163  0.167984
True   0.676471  0.338028

以上是“Pandas中merge如何合并DataFrame”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台安县| 察隅县| 牟定县| 浦县| 邹平县| 景德镇市| 博客| 都江堰市| 福泉市| 龙陵县| 兴隆县| 雷波县| 柳河县| 彭山县| 金华市| 墨脱县| 额敏县| 宣城市| 合山市| 澎湖县| 西青区| 牙克石市| 嘉定区| 漳浦县| 金乡县| 大厂| 芦山县| 赤壁市| 嘉禾县| 九江县| 蒙阴县| 镇江市| 青龙| 大英县| 靖安县| 务川| 嵩明县| 岳西县| 昭苏县| 蒙城县| 石嘴山市|