• test_pandas


    test_pandas
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\(","\)"] ],
            displayMath: [ ['$$','$$'], ["\[","\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
    
    In [6]:
    import numpy as np
    
    </div>
    

    为啥使用numpy

    计算购物车的总价格

    In [15]:
    l1=[2,3,10,5]
    l2=[10,200,150,50]
    
    </div>
    
    In [8]:
    l1_np = np.array(l1)
    l2_np = np.array(l2)
    
    </div>
    
    In [9]:
    l1_np
    
    </div>
    
    <div class="prompt output_prompt">Out[9]:</div>
    
    array([ 2,  3, 10,  5])
    In [10]:
    l2_np
    
    </div>
    
    <div class="prompt output_prompt">Out[10]:</div>
    
    array([ 10, 200, 150,  50])
    In [11]:
    l1_np * l2_np
    
    </div>
    
    <div class="prompt output_prompt">Out[11]:</div>
    
    array([  20,  600, 1500,  250])
    In [13]:
    np.sum(l1_np * l2_np)
    
    </div>
    
    <div class="prompt output_prompt">Out[13]:</div>
    
    2370
    In [14]:
    import numpy as np
    import pandas as pd
    
    </div>
    

    Series的学习

    Series的创建方法

    In [17]:
    s1 = pd.Series([2,3,4,5,6])
    
    </div>
    
    In [18]:
    s1
    
    </div>
    
    <div class="prompt output_prompt">Out[18]:</div>
    
    0    2
    1    3
    2    4
    3    5
    4    6
    dtype: int64
    In [19]:
    s2 = pd.Series([2,3,4,5,6],index=['a','b','c','d','e'])
    
    </div>
    
    In [20]:
    s2
    
    </div>
    
    <div class="prompt output_prompt">Out[20]:</div>
    
    a    2
    b    3
    c    4
    d    5
    e    6
    dtype: int64

    索引取值

    In [21]:
    s1[1]
    
    </div>
    
    <div class="prompt output_prompt">Out[21]:</div>
    
    3
    In [22]:
    s2['b']
    
    </div>
    
    <div class="prompt output_prompt">Out[22]:</div>
    
    3
    In [23]:
    s2[1]  ##### 数字型索引和自定义索引是共存的
    
    </div>
    
    <div class="prompt output_prompt">Out[23]:</div>
    
    3
    In [24]:
    s4 = pd.Series(0,index=['a','b','c'])
    s4
    
    </div>
    
    <div class="prompt output_prompt">Out[24]:</div>
    
    a    0
    b    0
    c    0
    dtype: int64

    Series的特性

    In [26]:
    s1 * 2   #### 矢量运算
    
    </div>
    
    <div class="prompt output_prompt">Out[26]:</div>
    
    0     4
    1     6
    2     8
    3    10
    4    12
    dtype: int64
    In [28]:
    s3 = pd.Series([2,3,4,5,6])
    s3
    
    </div>
    
    <div class="prompt output_prompt">Out[28]:</div>
    
    0    2
    1    3
    2    4
    3    5
    4    6
    dtype: int64
    In [29]:
    s1 * s3
    
    </div>
    
    <div class="prompt output_prompt">Out[29]:</div>
    
    0     4
    1     9
    2    16
    3    25
    4    36
    dtype: int64
    In [30]:
    s1>4
    
    </div>
    
    <div class="prompt output_prompt">Out[30]:</div>
    
    0    False
    1    False
    2    False
    3     True
    4     True
    dtype: bool
    In [31]:
    s1[s1>4]  #### 布尔型索引
    
    </div>
    
    <div class="prompt output_prompt">Out[31]:</div>
    
    3    5
    4    6
    dtype: int64
    In [32]:
    abs(s1)
    
    </div>
    
    <div class="prompt output_prompt">Out[32]:</div>
    
    0    2
    1    3
    2    4
    3    5
    4    6
    dtype: int64
    In [34]:
    sum(s1)  #### 求和
    
    </div>
    
    <div class="prompt output_prompt">Out[34]:</div>
    
    20

    缺失值处理

    In [35]:
    st = pd.Series({'sean':12, 'yang':15, 'cloud':20, 'bella':23})  #### 放字典也可以
    st
    
    </div>
    
    <div class="prompt output_prompt">Out[35]:</div>
    
    sean     12
    yang     15
    cloud    20
    bella    23
    dtype: int64
    In [37]:
    obj1 = pd.Series(st, index=['sean', 'yang', 'cloud'])
    obj1
    
    </div>
    
    <div class="prompt output_prompt">Out[37]:</div>
    
    sean     12
    yang     15
    cloud    20
    dtype: int64
    In [39]:
    obj2 = pd.Series(st, index=['sean', 'yang', 'cloud', 'rocky'])
    obj2
    
    </div>
    
    <div class="prompt output_prompt">Out[39]:</div>
    
    sean     12.0
    yang     15.0
    cloud    20.0
    rocky     NaN
    dtype: float64
    In [41]:
    #### 为啥值的类型从整型变成了浮点型?
    ### 答:因为NaN是浮点类型,所以为了兼容nan的浮点类型,因此强制的将之前的整型变成了浮点型
    type(np.nan)
    
    </div>
    
    <div class="prompt output_prompt">Out[41]:</div>
    
    float
    In [42]:
    #### nan 他等于谁?
    np.nan == np.nan
    
    </div>
    
    <div class="prompt output_prompt">Out[42]:</div>
    
    False
    In [45]:
    #### 使用fillna()方法填充nan
    obj2.fillna("好")
    
    </div>
    
    <div class="prompt output_prompt">Out[45]:</div>
    
    sean     12
    yang     15
    cloud    20
    rocky     好
    dtype: object
    In [46]:
    obj2  ### obj2在使用fillna()时相当于又重新copy了一份
    
    </div>
    
    <div class="prompt output_prompt">Out[46]:</div>
    
    sean     12.0
    yang     15.0
    cloud    20.0
    rocky     NaN
    dtype: float64
    In [47]:
    a = obj2
    a
    
    </div>
    
    <div class="prompt output_prompt">Out[47]:</div>
    
    sean     12.0
    yang     15.0
    cloud    20.0
    rocky     NaN
    dtype: float64
    In [48]:
    #### 删除nan所在的行
    obj2.dropna(inplace=True)  ### inplace = True:代表对象本身的基础上删掉
    
    </div>
    
    In [49]:
    obj2
    
    </div>
    
    <div class="prompt output_prompt">Out[49]:</div>
    
    sean     12.0
    yang     15.0
    cloud    20.0
    dtype: float64
    In [51]:
    #### isnull 判断是否为空
    obj2.isnull()
    
    </div>
    
    <div class="prompt output_prompt">Out[51]:</div>
    
    sean     False
    yang     False
    cloud    False
    dtype: bool

    两个Series的运算

    In [52]:
    #### 向量运算
    
    </div>
    
    In [53]:
    s4 = pd.Series({'height':170, 'age':18, 'salary':2000})
    s4
    
    </div>
    
    <div class="prompt output_prompt">Out[53]:</div>
    
    height     170
    age         18
    salary    2000
    dtype: int64
    In [54]:
    s5 = pd.Series({'height':110, 'age':20, 'salary':2367})
    s5
    
    </div>
    
    <div class="prompt output_prompt">Out[54]:</div>
    
    height     110
    age         20
    salary    2367
    dtype: int64
    In [55]:
    s4 +s5  #### 索引所对应的值进行加减乘除 
    
    </div>
    
    <div class="prompt output_prompt">Out[55]:</div>
    
    height     280
    age         38
    salary    4367
    dtype: int64
    In [57]:
    s6 = pd.Series({'name':110, 'age':20, 'salary':2367})
    s6
    
    </div>
    
    <div class="prompt output_prompt">Out[57]:</div>
    
    name       110
    age         20
    salary    2367
    dtype: int64
    In [58]:
    s4 + s6
    
    </div>
    
    <div class="prompt output_prompt">Out[58]:</div>
    
    age         38.0
    height       NaN
    name         NaN
    salary    4367.0
    dtype: float64
    In [59]:
    s1
    
    </div>
    
    <div class="prompt output_prompt">Out[59]:</div>
    
    0    2
    1    3
    2    4
    3    5
    4    6
    dtype: int64

    Series索引

    In [62]:
    #### 获取 2, 4, 6三个值
    #### 花式索引  中括号中套中括号  ,内层中括号写索引下标
    

    s1[[0,2,4]]

    </div>
    
    <div class="prompt output_prompt">Out[62]:</div>
    
    0    2
    2    4
    4    6
    dtype: int64
    In [63]:
    arr = np.array([1,2,3,4,5])
    
    </div>
    
    In [64]:
    arr
    
    </div>
    
    <div class="prompt output_prompt">Out[64]:</div>
    
    array([1, 2, 3, 4, 5])
    In [65]:
    arr[[0,2,4]]
    
    </div>
    
    <div class="prompt output_prompt">Out[65]:</div>
    
    array([1, 3, 5])

    整数索引

    In [68]:
    sr = pd.Series(np.arange(10))
    sr
    
    </div>
    
    <div class="prompt output_prompt">Out[68]:</div>
    
    0    0
    1    1
    2    2
    3    3
    4    4
    5    5
    6    6
    7    7
    8    8
    9    9
    dtype: int32
    In [71]:
    sr1 = sr[3:]
    sr1
    
    </div>
    
    <div class="prompt output_prompt">Out[71]:</div>
    
    3    3
    4    4
    5    5
    6    6
    7    7
    8    8
    9    9
    dtype: int32
    In [73]:
    sr1.iloc[0]   ####  iloc == index + location
    
    </div>
    
    <div class="prompt output_prompt">Out[73]:</div>
    
    3
    In [75]:
    sr1.loc[3]   #### 下标 
    
    </div>
    
    <div class="prompt output_prompt">Out[75]:</div>
    
    3

    DataFrame

    In [76]:
    df = pd.DataFrame({'one':[1,2,3,4],'two':[5,6,7,8]})
    df
    
    </div>
    
    <div class="prompt output_prompt">Out[76]:</div>
    
    one two
    0 1 5
    1 2 6
    2 3 7
    3 4 8
    In [77]:
    df['one'].iloc[0]  #### 先是获取列 再然后是行
    
    </div>
    
    <div class="prompt output_prompt">Out[77]:</div>
    
    1

    常见的属性

    In [78]:
    df.index  #### 获取行索引
    
    </div>
    
    <div class="prompt output_prompt">Out[78]:</div>
    
    RangeIndex(start=0, stop=4, step=1)
    In [79]:
    df.columns  #### 获取列索引
    
    </div>
    
    <div class="prompt output_prompt">Out[79]:</div>
    
    Index(['one', 'two'], dtype='object')
    In [80]:
    df.T  #### 行列转置
    
    </div>
    
    <div class="prompt output_prompt">Out[80]:</div>
    
    0 1 2 3
    one 1 2 3 4
    two 5 6 7 8
    In [81]:
    df.values
    
    </div>
    
    <div class="prompt output_prompt">Out[81]:</div>
    
    array([[1, 5],
           [2, 6],
           [3, 7],
           [4, 8]], dtype=int64)
    In [83]:
    df['one'].values[0]
    
    </div>
    
    <div class="prompt output_prompt">Out[83]:</div>
    
    1
    In [85]:
    df.describe()
    
    </div>
    
    <div class="prompt output_prompt">Out[85]:</div>
    
    one two
    count 4.000000 4.000000
    mean 2.500000 6.500000
    std 1.290994 1.290994
    min 1.000000 5.000000
    25% 1.750000 5.750000
    50% 2.500000 6.500000
    75% 3.250000 7.250000
    max 4.000000 8.000000

    企业中处理数据的方式

    In [86]:
    #### 1. 别的同事会给你一个excel文件或者csv文件
    #### 2. 使用pandas读取csv文件
    
    </div>
    
    In [87]:
    movies = pd.read_csv('./douban_movie.csv')  ### 只需要read_csv函数, 将csv中的所有数据读出
    movies
    
    </div>
    
    <div class="prompt output_prompt">Out[87]:</div>
    
    名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
    0 肖申克的救赎 692795.0 剧情/犯罪 美国 1994-09-10 00:00:00 142.0 1994 9.6 多伦多电影节
    1 控方证人 42995.0 剧情/悬疑/犯罪 美国 1957-12-17 00:00:00 116.0 1957 9.5 美国
    2 美丽人生 327855.0 剧情/喜剧/爱情 意大利 1997-12-20 00:00:00 116.0 1997 9.5 意大利
    3 阿甘正传 580897.0 剧情/爱情 美国 1994-06-23 00:00:00 142.0 1994 9.4 洛杉矶首映
    4 霸王别姬 478523.0 剧情/爱情/同性 中国大陆 1993-01-01 00:00:00 171.0 1993 9.4 香港
    ... ... ... ... ... ... ... ... ... ...
    38730 神学院 S 46.0 Adult 法国 1905-06-05 00:00:00 58.0 1983 8.6 美国
    38731 1935年 57.0 喜剧/歌舞 美国 1935-03-15 00:00:00 98.0 1935 7.6 美国
    38732 血溅画屏 95.0 剧情/悬疑/犯罪/武侠/古装 中国大陆 1905-06-08 00:00:00 91.0 1986 7.1 美国
    38733 魔窟中的幻想 51.0 惊悚/恐怖/儿童 中国大陆 1905-06-08 00:00:00 78.0 1986 8.0 美国
    38734 列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме... 32.0 剧情/战争 苏联 1905-05-30 00:00:00 97.0 1977 6.6 美国

    38735 rows × 9 columns

    In [89]:
    movies.describe()
    
    </div>
    
    <div class="prompt output_prompt">Out[89]:</div>
    
    投票人数 时长 年代 评分
    count 38735.000000 38735.000000 38735.000000 38735.000000
    mean 6184.502438 89.050975 1998.788176 6.935678
    std 26142.480865 83.335085 253.201997 1.270113
    min -118.000000 1.000000 1888.000000 2.000000
    25% 98.000000 60.000000 1990.000000 6.300000
    50% 341.000000 92.000000 2005.000000 7.100000
    75% 1739.500000 106.000000 2010.000000 7.800000
    max 692795.000000 11500.000000 39180.000000 9.900000
    In [98]:
    movies.to_csv('./modify_movies.csv',index=False)   #### 保存数据到一个文件中  index=False表示不要在列名称前加索引。
    
    </div>
    
    In [99]:
    pd.read_csv('./modify_movies.csv')
    
    </div>
    
    <div class="prompt output_prompt">Out[99]:</div>
    
    名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
    0 肖申克的救赎 692795.0 剧情/犯罪 美国 1994-09-10 00:00:00 142.0 1994 9.6 多伦多电影节
    1 控方证人 42995.0 剧情/悬疑/犯罪 美国 1957-12-17 00:00:00 116.0 1957 9.5 美国
    2 美丽人生 327855.0 剧情/喜剧/爱情 意大利 1997-12-20 00:00:00 116.0 1997 9.5 意大利
    3 阿甘正传 580897.0 剧情/爱情 美国 1994-06-23 00:00:00 142.0 1994 9.4 洛杉矶首映
    4 霸王别姬 478523.0 剧情/爱情/同性 中国大陆 1993-01-01 00:00:00 171.0 1993 9.4 香港
    ... ... ... ... ... ... ... ... ... ...
    38730 神学院 S 46.0 Adult 法国 1905-06-05 00:00:00 58.0 1983 8.6 美国
    38731 1935年 57.0 喜剧/歌舞 美国 1935-03-15 00:00:00 98.0 1935 7.6 美国
    38732 血溅画屏 95.0 剧情/悬疑/犯罪/武侠/古装 中国大陆 1905-06-08 00:00:00 91.0 1986 7.1 美国
    38733 魔窟中的幻想 51.0 惊悚/恐怖/儿童 中国大陆 1905-06-08 00:00:00 78.0 1986 8.0 美国
    38734 列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме... 32.0 剧情/战争 苏联 1905-05-30 00:00:00 97.0 1977 6.6 美国

    38735 rows × 9 columns

    In [100]:
    movies.head()  #### 默认显示前5行, head中可以传入行数,查看
    
    </div>
    
    <div class="prompt output_prompt">Out[100]:</div>
    
    名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
    0 肖申克的救赎 692795.0 剧情/犯罪 美国 1994-09-10 00:00:00 142.0 1994 9.6 多伦多电影节
    1 控方证人 42995.0 剧情/悬疑/犯罪 美国 1957-12-17 00:00:00 116.0 1957 9.5 美国
    2 美丽人生 327855.0 剧情/喜剧/爱情 意大利 1997-12-20 00:00:00 116.0 1997 9.5 意大利
    3 阿甘正传 580897.0 剧情/爱情 美国 1994-06-23 00:00:00 142.0 1994 9.4 洛杉矶首映
    4 霸王别姬 478523.0 剧情/爱情/同性 中国大陆 1993-01-01 00:00:00 171.0 1993 9.4 香港
    In [102]:
    movies.head(2)  #### 指定数字2,表示显示两行 
    
    </div>
    
    <div class="prompt output_prompt">Out[102]:</div>
    
    名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
    0 肖申克的救赎 692795.0 剧情/犯罪 美国 1994-09-10 00:00:00 142.0 1994 9.6 多伦多电影节
    1 控方证人 42995.0 剧情/悬疑/犯罪 美国 1957-12-17 00:00:00 116.0 1957 9.5 美国
    In [103]:
    movies.tail()  #### 默认显示后5行, tail中也可以传入行数查看
    
    </div>
    
    <div class="prompt output_prompt">Out[103]:</div>
    
    名字 投票人数 类型 产地 上映时间 时长 年代 评分 首映地点
    38730 神学院 S 46.0 Adult 法国 1905-06-05 00:00:00 58.0 1983 8.6 美国
    38731 1935年 57.0 喜剧/歌舞 美国 1935-03-15 00:00:00 98.0 1935 7.6 美国
    38732 血溅画屏 95.0 剧情/悬疑/犯罪/武侠/古装 中国大陆 1905-06-08 00:00:00 91.0 1986 7.1 美国
    38733 魔窟中的幻想 51.0 惊悚/恐怖/儿童 中国大陆 1905-06-08 00:00:00 78.0 1986 8.0 美国
    38734 列宁格勒围困之星火战役 Блокада: Фильм 2: Ленинградский ме... 32.0 剧情/战争 苏联 1905-05-30 00:00:00 97.0 1977 6.6 美国

    DataFrame的分组

    In [104]:
    #### 读取某一个url网页下面的所有的表格数据
    res = pd.read_html('https://baike.baidu.com/item/NBA%E6%80%BB%E5%86%A0%E5%86%9B/2173192?fr=aladdin')
    
    </div>
    
    In [107]:
    champion_res = res[0]
    
    </div>
    
    In [108]:
    champion_res
    
    </div>
    
    <div class="prompt output_prompt">Out[108]:</div>
    
    0 1 2 3 4 5
    0 年份 比赛日期 冠军 总比分 亚军 FMVP
    1 1947 4.16-4.22 费城勇士队 4-1 芝加哥牡鹿队
    2 1948 4.10-4.21 巴尔的摩子弹队 4-2 费城勇士队
    3 1949 4.4-4.13 明尼阿波利斯湖人队 4-2 华盛顿国会队
    4 1950 4.8-4.23 明尼阿波利斯湖人队 4-2 塞拉库斯民族队
    ... ... ... ... ... ... ...
    69 2015 6.5-6.17 金州勇士队 4-2 克里夫兰骑士队 安德烈·伊戈达拉
    70 2016 6.3-6.20 克里夫兰骑士队 4-3 金州勇士队 勒布朗·詹姆斯
    71 2017 6.2-6.13 金州勇士队 4-1 克利夫兰骑士队 凯文·杜兰特
    72 2018 6.1-6.9 金州勇士队 4-0 克利夫兰骑士队 凯文·杜兰特
    73 2019 5.31-6.14 多伦多猛龙队 4-2 金州勇士队 科怀·伦纳德

    74 rows × 6 columns

    In [109]:
    ##### 1.将第一行数据变成列名
    champion_res.iloc[0]
    
    </div>
    
    <div class="prompt output_prompt">Out[109]:</div>
    
    0      年份
    1    比赛日期
    2      冠军
    3     总比分
    4      亚军
    5    FMVP
    Name: 0, dtype: object
    In [110]:
    champion_res.columns = champion_res.iloc[0]  ### 将第一行的数据赋值给列名
    
    </div>
    
    In [112]:
    champion_res.head()
    
    </div>
    
    <div class="prompt output_prompt">Out[112]:</div>
    
    年份 比赛日期 冠军 总比分 亚军 FMVP
    0 年份 比赛日期 冠军 总比分 亚军 FMVP
    1 1947 4.16-4.22 费城勇士队 4-1 芝加哥牡鹿队
    2 1948 4.10-4.21 巴尔的摩子弹队 4-2 费城勇士队
    3 1949 4.4-4.13 明尼阿波利斯湖人队 4-2 华盛顿国会队
    4 1950 4.8-4.23 明尼阿波利斯湖人队 4-2 塞拉库斯民族队
    In [113]:
    champion_res.drop([0],inplace=True)
    
    </div>
    
    In [114]:
    champion_res
    
    </div>
    
    <div class="prompt output_prompt">Out[114]:</div>
    
    年份 比赛日期 冠军 总比分 亚军 FMVP
    1 1947 4.16-4.22 费城勇士队 4-1 芝加哥牡鹿队
    2 1948 4.10-4.21 巴尔的摩子弹队 4-2 费城勇士队
    3 1949 4.4-4.13 明尼阿波利斯湖人队 4-2 华盛顿国会队
    4 1950 4.8-4.23 明尼阿波利斯湖人队 4-2 塞拉库斯民族队
    5 1951 4.7-4.21 罗切斯特皇家队 4-3 纽约尼克斯队
    ... ... ... ... ... ... ...
    69 2015 6.5-6.17 金州勇士队 4-2 克里夫兰骑士队 安德烈·伊戈达拉
    70 2016 6.3-6.20 克里夫兰骑士队 4-3 金州勇士队 勒布朗·詹姆斯
    71 2017 6.2-6.13 金州勇士队 4-1 克利夫兰骑士队 凯文·杜兰特
    72 2018 6.1-6.9 金州勇士队 4-0 克利夫兰骑士队 凯文·杜兰特
    73 2019 5.31-6.14 多伦多猛龙队 4-2 金州勇士队 科怀·伦纳德

    73 rows × 6 columns

    In [116]:
    #### 1.求每个队获取冠军的次数
    #####思路:对冠军球队进行分组  mysql: group by 分组对象
    champion_res.groupby('冠军')   #### 获取的是一个分组对象
    
    </div>
    
    <div class="prompt output_prompt">Out[116]:</div>
    
    <pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000000168FDB70>
    In [117]:
    champion_res.groupby('冠军').groups  #### 拿到每支队伍获取冠军的行索引
    
    </div>
    
    <div class="prompt output_prompt">Out[117]:</div>
    
    {'休斯顿火箭队': Int64Index([48, 49], dtype='int64'),
     '克里夫兰骑士队': Int64Index([70], dtype='int64'),
     '华盛顿子弹队': Int64Index([32], dtype='int64'),
     '圣安东尼奥马刺队': Int64Index([53, 57, 59, 61, 68], dtype='int64'),
     '圣路易斯老鹰队': Int64Index([12], dtype='int64'),
     '塞拉库斯民族队': Int64Index([9], dtype='int64'),
     '多伦多猛龙队': Int64Index([73], dtype='int64'),
     '密尔沃基雄鹿队': Int64Index([25], dtype='int64'),
     '巴尔的摩子弹队': Int64Index([2], dtype='int64'),
     '底特律活塞队': Int64Index([43, 44, 58], dtype='int64'),
     '明尼阿波利斯湖人队': Int64Index([3, 4, 6, 7, 8], dtype='int64'),
     '波士顿凯尔特人队': Int64Index([11, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 28, 30, 35, 38, 40,
                 62],
                dtype='int64'),
     '波特兰开拓者队': Int64Index([31], dtype='int64'),
     '洛杉矶湖人队': Int64Index([26, 34, 36, 39, 41, 42, 54, 55, 56, 63, 64], dtype='int64'),
     '纽约尼克斯队': Int64Index([24, 27], dtype='int64'),
     '罗切斯特皇家队': Int64Index([5], dtype='int64'),
     '芝加哥公牛队': Int64Index([45, 46, 47, 50, 51, 52], dtype='int64'),
     '西雅图超音速队': Int64Index([33], dtype='int64'),
     '费城76人队': Int64Index([21, 37], dtype='int64'),
     '费城勇士队': Int64Index([1, 10], dtype='int64'),
     '达拉斯小牛队': Int64Index([65], dtype='int64'),
     '迈阿密热火队': Int64Index([60, 66, 67], dtype='int64'),
     '金州勇士队': Int64Index([29, 69, 71, 72], dtype='int64')}
    In [118]:
    #### 2.对数据进行聚合  mysql: count sum 
    champion_res.groupby('冠军').size()   #### 获取每支队伍获得冠军的次数
    
    </div>
    
    <div class="prompt output_prompt">Out[118]:</div>
    
    冠军
    休斯顿火箭队        2
    克里夫兰骑士队       1
    华盛顿子弹队        1
    圣安东尼奥马刺队      5
    圣路易斯老鹰队       1
    塞拉库斯民族队       1
    多伦多猛龙队        1
    密尔沃基雄鹿队       1
    巴尔的摩子弹队       1
    底特律活塞队        3
    明尼阿波利斯湖人队     5
    波士顿凯尔特人队     17
    波特兰开拓者队       1
    洛杉矶湖人队       11
    纽约尼克斯队        2
    罗切斯特皇家队       1
    芝加哥公牛队        6
    西雅图超音速队       1
    费城76人队        2
    费城勇士队         2
    达拉斯小牛队        1
    迈阿密热火队        3
    金州勇士队         4
    dtype: int64
    In [119]:
    #### 3. 对数据进行排序   mysql: order by
    champion_res.groupby('冠军').size().sort_values(ascending=False)  ### 默认是升序排序
    
    </div>
    
    <div class="prompt output_prompt">Out[119]:</div>
    
    冠军
    波士顿凯尔特人队     17
    洛杉矶湖人队       11
    芝加哥公牛队        6
    圣安东尼奥马刺队      5
    明尼阿波利斯湖人队     5
    金州勇士队         4
    迈阿密热火队        3
    底特律活塞队        3
    休斯顿火箭队        2
    纽约尼克斯队        2
    费城76人队        2
    费城勇士队         2
    塞拉库斯民族队       1
    克里夫兰骑士队       1
    华盛顿子弹队        1
    达拉斯小牛队        1
    圣路易斯老鹰队       1
    西雅图超音速队       1
    多伦多猛龙队        1
    密尔沃基雄鹿队       1
    罗切斯特皇家队       1
    波特兰开拓者队       1
    巴尔的摩子弹队       1
    dtype: int64
    **pandas第二部分:**[Pandas模块05](https://www.cnblogs.com/zhangchaocoming/p/11625767.html)
  • 相关阅读:
    Linux05——用户操作
    租房子-----多选题
    查询
    增删
    PHP基础
    数据库--高级查询
    CRUD查询
    CRUD操作
    数据库
    轮播
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/12403920.html
Copyright © 2020-2023  润新知