python pandas处理CSV文件并使用join()方法拼接两个dataframe

本问主要讲解如何拼接两个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行):

分区  排名  球队  胜   负   胜率  胜场差 连续成绩    得分/场    场均失分    差距
0   西区  1   火箭  49  13  79.0    0.0 15连胜    114.0   105.2   8.8
1   西区  2   勇士  49  14  77.8    0.5 5连胜 116.1   107.6   8.5
2   西区  3   开拓者 37  26  58.7    12.5    6连胜 105.2   103.4   1.8
3   西区  4   森林狼 38  28  57.6    13.0    2连负 109.7   107.0   2.7
4   西区  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的输出

    分区  排名  胜   负   胜率  胜场差 连续成绩    得分/场    场均失分    差距  RankingBy_S RankingBy_M
球队                                              
勇士  西区  2   49  14  77.8    0.5 5连胜 116.1   107.6   8.5 0   20
火箭  西区  1   49  13  79.0    0.0 15连胜    114.0   105.2   8.8 1   11
鹈鹕  西区  5   35  26  57.4    13.5    7连胜 112.1   111.7   0.4 2   28
猛龙  东区  1   44  17  72.1    0.0 3连胜 112.1   103.4   8.7 3   5
骑士  东区  3   36  26  58.1    8.5 2连负 110.0   110.1   -0.1    4   27
森林狼 西区  4   38  28  57.6    13.0    2连负 109.7   107.0   2.7 5   16
快船  西区  9   33  28  54.1    15.5    1连胜 108.9   107.8   1.1 6   21
掘金  西区  8   35  28  55.6    14.5    2连胜 108.7   107.5   1.2 7   19
湖人  西区  11  28  34  45.2    21.0    5连胜 108.4   110.0   -1.6    8   26
76人 东区  6   34  27  55.7    10.0    2连胜 107.5   105.4   2.1 9   13
奇才  东区  4   36  27  57.1    9.0 2连负 107.1   105.5   1.6 10  14
步行者 东区  5   35  27  56.5    9.5 1连胜 106.7   105.2   1.5 11  10
黄蜂  东区  10  28  35  44.4    17.0    2连负 106.6   106.7   -0.1    12  15
雷霆  西区  7   37  28  56.9    13.5    1连负 106.6   103.8   2.8 13  7
魔术  东区  14  20  43  31.7    25.0    2连胜 105.8   110.0   -4.2    14  25
篮网  东区  13  20  43  31.7    25.0    2连负 105.6   109.7   -4.1    15  24
开拓者 西区  3   37  26  58.7    12.5    6连胜 105.2   103.4   1.8 16  4
雄鹿  东区  7   33  29  53.2    11.5    4连负 104.7   105.3   -0.6    17  12
太阳  西区  14  19  45  29.7    31.0    1连负 104.5   113.2   -8.7    18  29
凯尔特人    东区  2   44  20  68.8    1.5 1连负 104.4   100.2   4.2 19  1
尼克斯 东区  11  24  39  38.1    21.0    3连负 104.2   107.1   -2.9    20  17
老鹰  东区  15  19  44  30.2    26.0    1连负 103.6   108.2   -4.6    21  22
公牛  东区  12  21  41  33.9    23.5    1连胜 103.3   109.5   -6.2    22  23
活塞  东区  9   29  34  46.0    16.0    2连负 103.1   104.0   -0.9    23  8
爵士  西区  10  33  30  52.4    16.5    2连胜 102.8   101.3   1.5 24  2
马刺  西区  6   36  27  57.1    13.5    2连负 102.4   99.4    3.0 25  0
独行侠 西区  13  19  44  30.2    30.5    2连负 102.1   104.8   -2.7    26  9
热火  东区  8   33  30  52.4    12.0    1连胜 101.4   102.0   -0.6    27  3
国王  西区  12  19  44  30.2    30.5    1连负 99.2    107.1   -7.9    28  18
灰熊  西区  15  18  44  29.0    31.0    13连负    98.9    103.6   -4.7    29  6

如上面的输出可以看出,得分和失分的排名已经合并到了同一个表格

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容