美文网首页
pandas中的DataFrame入门

pandas中的DataFrame入门

作者: 转身丶即天涯 | 来源:发表于2019-11-01 13:44 被阅读0次

    内容参考自以下博客

    https://www.yiibai.com/pandas/python_pandas_dataframe.html

    DataFrame简介

    在pandas中,它的中文名叫“数据帧”,DataFrame用于描述一个二维数据结构,可以用来表示‘关系数据库表’ 或者 ‘二维矩阵’等等。

    创建DataFrame

    DataFrame的构造函数
    image.png
    构造函数参数
    image.png

    可以看到DataFrame支持很多类型的数据,接下来依次尝试。

    1. 使用dict作数据源
    import pandas as pd
    
    
    d = {
        'column1': [1, 2],
        'column2': [3, 4]
    }
    df = pd.DataFrame(data=d)
    
    print(df)
    
    image.png

    在控制台的输出中可以看到,dict的key被作为列明展示了出来。
    如果只想单纯的传入数据,然后由我们自己制定行名和列名呢?
    可以尝试一下用list作为数据源。

    2. 使用list作数据源
    l = [
        [1, 2],
        [3, 4]
    ]
    df = pd.DataFrame(data=l, index=['row1', 'row2'], columns=['column1', 'column2'])
    
    print(df)
    
    image.png

    这次在构造DataFrame时传入了三个构造参数,index表示行名,columns表示列明,它们接受的都是一个序列容器。
    那么有哪些序列是允许的呢?list, tuple,set是可以的,虽然字符串虽然也是序列,但是不行,会引发TypeError异常。

    3. 使用tuple作数据源
    t = (
        (1, 2, 3, 4),
        (5, 6, 7, 8)
    )
    
    df = pd.DataFrame(data=t, index=range(len(t)), columns=('col1', 'col2', 'col3', 'col4'))
    
    print(df)
    
    image.png

    经过测试,data参数是支持tuple结构的。
    而且顺便发现index的序列的个数要和data中行的数目一致。columns参数应该也是同理。

    4. 使用set作数据源

    集合的构造函数set()是个很神奇的函数,它可以帮助我们把一个序列中重复的值去掉。
    在数据处理和分析的过程中也会经常用到,测试一下set是否可以构造DataFrame。

    image.png

    很遗憾,set不支持,理由是set无法被hash,具体原因不详,先不管了。

    DataFrame的属性

    作为pandas中最重要的类,属性我们应该有所了解,才能方便coding。
    以刚刚用list作数据源生成的DataFrame为例,在df那里打个断点,然后在Debugger中看一下。


    image.png
    image.png

    上面两张图可以看到,属性真是多的一匹...
    想要一下子都看懂,几乎是不可能了,先找几个常用的、重要的看看就得了。

    我认为以下几个属性应该会比较常用:

    1. T:转置矩阵。
    image.png
    2. axes: 坐标轴信息(或者说是 行列信息)
    image.png

    那么如何把行和列的信息拿出来的呢 ?
    行信息:DataFrame.axes[0].values.array
    列信息:DataFrame.axes[1].values.array

    3. shape: 矩阵形状
    image.png

    tuple中第一个元素2,表示有2行。
    tuple中第二个元素2,表示有2列。

    4. values: DataFrame的取值属性
    image.png

    如果比如说我想取第2行第1的数据呢?

    # 别忘了,下标是从0开始的
    df.values[1][0]         # output: 3
    
    关于DataFrame的其他属性

    有个网站的总结的不错,传送门:http://liao.cpython.org/pandas09/

    相关文章

      网友评论

          本文标题:pandas中的DataFrame入门

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