pandas 面试题挑战一

作者: 人工智能人话翻译官 | 来源:发表于2019-05-18 21:15 被阅读284次

    1 查看pandas的版本

    解决办法

    import numpy as np
    import pandas as pd
    
    print(pd.__version__)
    

    结果如下

    0.24.1
    

    2 如何通过list,numpy array, dict创建series

    现有list, numpy array, dict如下:

    import numpy as np
    import pandas as pd
    
    mylist = list('abc')
    myarr = np.arange(3)
    mydict = dict(zip(mylist, myarr))
    
    print("list: {}\nmyarr: {}\nmydict: {}\n".format(mylist, myarr, mydict))
    

    输出如下:

    list: ['a', 'b', 'c']
    array: [0 1 2]
    dict: {'a': 0, 'b': 1, 'c': 2}
    

    请把他们变成Series
    解决办法:

    ser1 = pd.Series(mylist)
    ser2 = pd.Series(myarr)
    ser3 = pd.Series(mydict)
    

    结果如下:


    image.png

    3 把一个Series转换为DataFrame

    现有Series如下:

    import numpy as np
    import pandas as pd
    
    mylist = list('abc')
    myarr = np.arange(3)
    mydict = dict(zip(mylist, myarr))
    ser3 = pd.Series(mydict)
    print(ser3)
    

    输出

    a    0
    b    1
    c    2
    dtype: int64
    

    请把Series转换为DataFrame

    df = ser3.to_frame()
    df
    

    输出如下:


    df

    如果想把Series中的index也一起进行转换,可以使用如下操作

    df = ser3.to_frame().reset_index()
    df
    

    输出如下:


    image.png

    合并两个Series组成一个DataFrame

    已有两个Series, ser1与ser2

    import numpy as np
    ser1 = pd.Series(list('abcedfghijklmnopqrstuvwxyz'))
    ser2 = pd.Series(np.arange(26))
    

    请把它们合并成一个DataFrame
    解决方法如下:

    df = pd.concat([ser1, ser2], axis=1)
    #df = pd.DataFrame({'col1': ser1, 'col2': ser2})
    #这也是一种可行的办法
    df.head()
    

    结果如下


    df

    5 给Series定义一个名字

    已有Series: ser,我们想给它定义一个名字

    ser = pd.Series(list('abcedfghijklmnopqrstuvwxyz'))
    

    解决方式如下:

    ser.name = 'alpha'
    ser.head()
    

    输入如下:


    ser

    相关文章

      网友评论

        本文标题:pandas 面试题挑战一

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