pandas(二)DataFrame类型

DataFrame

DataFrame是一个表格型的数据类型,每列值类型可以不同
DataFrame既有行索引index、又有列索引coulem
DataFrame常用二维数据表达,但也可以用多维数据表达

DataFrame的创建

  • 基于Series创建
    每列的index与columns的数量可以不相同的
    如果没有为值,会根据行列索引自动补齐

    import pandas as pd
    
    dt = {
        'one': pd.Series([7, 8, 9], index=['d', 'b', 'e']),
        'two': pd.Series([1, 2, 3, 4], index=['a', 'c', 'd', 'b'])
    }
    df = pd.DataFrame(dt)
    print(df)
    
       one  two
    a  NaN  1.0
    b  8.0  4.0
    c  NaN  2.0
    d  7.0  3.0
    e  9.0  NaN
    
    

    根据索引查找,如果查不到,自动补齐

    df = pd.DataFrame(dt, index=['a', 'b', 'c'], columns=['two', 'three'])
    
    print(df)
    
       two three
    a    1   NaN
    b    4   NaN
    c    2   NaN
    
  • 通过列表类型的字典创建
    每列的index与columns的数量相同的

    dt = {
        'one': [1, 2, 3, 4],
        'two': [9, 8, 7, 6]
          }
    df = pd.DataFrame(dt, index=['a', 'b', 'c', 'd'])
    print(df)
    
       one  two
    a    1    9
    b    2    8
    c    3    7
    d    4    6
    
    dt = {
        '城市': ['北京', '上海', '广州', '深圳', '珠海'],
        '环比': [100, 140, 173, 157, 137],
        '同比': [70, 87, 55, 69, 72],
        '定基': [9, 8, 7, 6, 7]
          }
    df = pd.DataFrame(dt, index=['c1', 'c2', 'c3', 'c4', 'c5'])
    print(df)
    
        城市   环比  同比  定基
    c1  北京  100  70   9
    c2  上海  140  87   8
    c3  广州  173  55   7
    c4  深圳  157  69   6
    c5  珠海  137  72   7
    

    取索index

    print(df.index)
    
    Index(['c1', 'c2', 'c3', 'c4', 'c5'], dtype='object')
    

    columns

    print(df.columns)
    
    Index(['城市', '环比', '同比', '定基'], dtype='object')
    

    values

    print(df.values)
    
    [['北京' 100 70 9]
     ['上海' 140 87 8]
     ['广州' 173 55 7]
     ['深圳' 157 69 6]
     ['珠海' 137 72 7]]
    

    获取其中一列 df[column]

    print(df['同比'])
    
    c1    70
    c2    87
    c3    55
    c4    69
    c5    72
    Name: 同比, dtype: int64
    

    获取其中一行 df.loc['index'])

    print(df.loc['c2'])
    
    城市     上海
    环比    140
    同比     87
    定基      8
    Name: c2, dtype: object
    

    获取其中某行某列具体值 df.df[column]['index'])

    print(df['同比']['c2'])
    
    87
    
发布了192 篇原创文章 · 获赞 34 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/a6864657/article/details/103648307