美文网首页我爱编程
Python Beginners(4) -- Pandas

Python Beginners(4) -- Pandas

作者: 西瓜三茶 | 来源:发表于2017-06-14 21:31 被阅读0次

    1. Series

    document
    stackflow
    运用场景:假设有一个电影名称的list, 一个电影分数的list,两边的index是对齐的。给定一个电影名,如何迅速知道其分数?

    • 通过pd.series(data= , index= )可以建一个表。这里,把电影分数作为data,把电影名称作为index。从而建立起电影名称和分数之间的对应关系。
    • 如果想查询分数,只需通过 result["name"] or result [["n1", "n2 ]]来实现。
    # Import the Series object from pandas
    from pandas import Series
    film_names = series_film.values    # get film names list [ ]
    rt_scores = series_rt.values    # get score list [ ]
    series_custom = pd.Series(rt_scores, index=film_names) # set index and data
    print (series_custom[['Minions (2015)', 'Leviathan (2014)']]) 
    # get multiple film scores based on their names at the same time
    

    另外生成的series_custom同样可以用integer index来访问。这样,它既像一个list,也像一个dictionary。

    series_custom[5:11]
    

    Sort the string index of series_custom
    针对上一步得到的series_custom,进行sort index。

    • 首先把原有的index转化成list;
    • 再sorted(list)
    • 再用series_custom.reindex(new_index_list)得到新的result
    original_index = series_custom.index
    indexlist = sorted(original_index.tolist())
    sorted_by_index = series_custom.reindex(indexlist)
    print (sorted_by_index)
    

    series.sort_index(), sort_values()
    鉴于sort如此常用,pandas有内置的sort function,可以sort index也可以sort values

    sc2 = series_custom.sort_index()  # sort index
    sc3 = series_custom.sort_values()  # sort value
    print (sc2[0:10])
    print (sc3[0:10])
    

    normalization
    可以对ndarray统一运算,比如全都除以20

    series_normalized = series_custom/20
    print (series_normalized)
    

    一些其他的例子

    # Add each value with each other
    np.add(series_custom, series_custom)
    # Apply sine function to each value
    np.sin(series_custom)
    # Return the highest value (will return a single value, not a Series)
    np.max(series_custom)
    

    截取满足某些条件的数
    下面这句返回的是中间过程的Boolean,判断是否大于50

    series_custom > 50
    

    将中间这句判断带入,得到最后的数据结果

    series_greater_than_50 = series_custom[series_custom > 50]
    

    也可以用逻辑连接,在判断条件里写多个条件

    criteria_one = series_custom > 50
    criteria_two = series_custom < 75
    both_criteria = series_custom[criteria_one and criteria_two]
    

    Series始终保有两组数据之间的联系关系
    比如把critics和users的平均分算出来,和以前的index一起,生成一个新的series_custom

    rt_critics = Series(fandango['RottenTomatoes'].values, index=fandango['FILM'])
    rt_users = Series(fandango['RottenTomatoes_User'].values, index=fandango['FILM'])
    rt_mean = Series((rt_critics + rt_users)/2, index=fandango['FILM'])
    

    相关文章

      网友评论

        本文标题:Python Beginners(4) -- Pandas

        本文链接:https://www.haomeiwen.com/subject/aeejqxtx.html