本問主要講解如何拼接兩個dataframe
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
df = pd.read_csv('C:/python/plot_learn/nba.csv',encoding='utf-8')
df
輸出為(前5行):
分區(qū) 排名 球隊 勝 負 勝率 勝場差 連續(xù)成績 得分/場 場均失分 差距
0 西區(qū) 1 火箭 49 13 79.0 0.0 15連勝 114.0 105.2 8.8
1 西區(qū) 2 勇士 49 14 77.8 0.5 5連勝 116.1 107.6 8.5
2 西區(qū) 3 開拓者 37 26 58.7 12.5 6連勝 105.2 103.4 1.8
3 西區(qū) 4 森林狼 38 28 57.6 13.0 2連負 109.7 107.0 2.7
4 西區(qū) 5 鵜鶘 35 26 57.4 13.5 7連勝 112.1 111.7 0.4
分別針對“得分/場”和“場均失分”排序稚机,然后使用join方法拼接
df1=df.sort_values(by='得分/場',axis=0,ascending=False)
df2=df.sort_values(by='場均失分',axis=0,ascending=True)
df_score=df1.join(df0)
df_missed=df2.join(df3)
使用df.set_index()方法將‘球隊’列設置為index
df_score.set_index('球隊')
df_missed.set_index('球隊',inplace=True)
#用df.rename()方法修改列名
df_missed.rename(columns={'RankingBy':'RankingBy_M'},inplace=True)
df_score.rename(columns={'RankingBy':'RankingBy_S'},inplace=True)
合并
df_missed_Ranking=df_missed['RankingBy_M']
df_con1=df_score.join(df_missed_Ranking)
df_con1的輸出
分區(qū) 排名 勝 負 勝率 勝場差 連續(xù)成績 得分/場 場均失分 差距 RankingBy_S RankingBy_M
球隊
勇士 西區(qū) 2 49 14 77.8 0.5 5連勝 116.1 107.6 8.5 0 20
火箭 西區(qū) 1 49 13 79.0 0.0 15連勝 114.0 105.2 8.8 1 11
鵜鶘 西區(qū) 5 35 26 57.4 13.5 7連勝 112.1 111.7 0.4 2 28
猛龍 東區(qū) 1 44 17 72.1 0.0 3連勝 112.1 103.4 8.7 3 5
騎士 東區(qū) 3 36 26 58.1 8.5 2連負 110.0 110.1 -0.1 4 27
森林狼 西區(qū) 4 38 28 57.6 13.0 2連負 109.7 107.0 2.7 5 16
快船 西區(qū) 9 33 28 54.1 15.5 1連勝 108.9 107.8 1.1 6 21
掘金 西區(qū) 8 35 28 55.6 14.5 2連勝 108.7 107.5 1.2 7 19
湖人 西區(qū) 11 28 34 45.2 21.0 5連勝 108.4 110.0 -1.6 8 26
76人 東區(qū) 6 34 27 55.7 10.0 2連勝 107.5 105.4 2.1 9 13
奇才 東區(qū) 4 36 27 57.1 9.0 2連負 107.1 105.5 1.6 10 14
步行者 東區(qū) 5 35 27 56.5 9.5 1連勝 106.7 105.2 1.5 11 10
黃蜂 東區(qū) 10 28 35 44.4 17.0 2連負 106.6 106.7 -0.1 12 15
雷霆 西區(qū) 7 37 28 56.9 13.5 1連負 106.6 103.8 2.8 13 7
魔術 東區(qū) 14 20 43 31.7 25.0 2連勝 105.8 110.0 -4.2 14 25
籃網(wǎng) 東區(qū) 13 20 43 31.7 25.0 2連負 105.6 109.7 -4.1 15 24
開拓者 西區(qū) 3 37 26 58.7 12.5 6連勝 105.2 103.4 1.8 16 4
雄鹿 東區(qū) 7 33 29 53.2 11.5 4連負 104.7 105.3 -0.6 17 12
太陽 西區(qū) 14 19 45 29.7 31.0 1連負 104.5 113.2 -8.7 18 29
凱爾特人 東區(qū) 2 44 20 68.8 1.5 1連負 104.4 100.2 4.2 19 1
尼克斯 東區(qū) 11 24 39 38.1 21.0 3連負 104.2 107.1 -2.9 20 17
老鷹 東區(qū) 15 19 44 30.2 26.0 1連負 103.6 108.2 -4.6 21 22
公牛 東區(qū) 12 21 41 33.9 23.5 1連勝 103.3 109.5 -6.2 22 23
活塞 東區(qū) 9 29 34 46.0 16.0 2連負 103.1 104.0 -0.9 23 8
爵士 西區(qū) 10 33 30 52.4 16.5 2連勝 102.8 101.3 1.5 24 2
馬刺 西區(qū) 6 36 27 57.1 13.5 2連負 102.4 99.4 3.0 25 0
獨行俠 西區(qū) 13 19 44 30.2 30.5 2連負 102.1 104.8 -2.7 26 9
熱火 東區(qū) 8 33 30 52.4 12.0 1連勝 101.4 102.0 -0.6 27 3
國王 西區(qū) 12 19 44 30.2 30.5 1連負 99.2 107.1 -7.9 28 18
灰熊 西區(qū) 15 18 44 29.0 31.0 13連負 98.9 103.6 -4.7 29 6
如上面的輸出可以看出,得分和失分的排名已經(jīng)合并到了同一個表格