panda库Dataframe类型介绍

DataFrame类型

以下所有内容是学习嵩天老师的课程总结归纳的~
DataFrame类型由共用相同索引的一组列组成


image.png

可以认为这种数据类型是一个表格,index是每一行的行名。
DataFrame类型有一个轴axis的概念,其中index是0轴,表示为axis=0,而在不同列进行操作时,是1轴,则axis=1

总结:
dataframe是一个表格型的数据类型,每列值的类型可以不同。
dataframe有行索引(index),也有列索引(col)

DataFrame类型可以由如下类型创建

1.二维ndarray对象
2.由一维ndarray,列表,字典,元组或Series构成的字典
3.由Series类型创建
4.由其他dataframe类型创建

从二维ndarray对象创建

###dataframe类型
#从二维ndarray对象创建
import pandas as pd
import numpy as np
d =pd.DataFrame(np.arange(10).reshape(2,5))
d
>>>d
   0  1  2  3  4
0  0  1  2  3  4
1  5  6  7  8  9
最左边的0 1 是自动行索引,上面的 0 1 2 3 4 是自动列索引

从一维ndarray对象字典创建

##从一维ndarray对象字典创建
dt = {'one':pd.Series([1,2,3],index= ["a","b","c"]),
    'two':pd.Series([9,8,7,6], index=["a","b","c","d"])}
d = pd.DataFrame(dt)
>>>d
   one  two
a  1.0    9
b  2.0    8
c  3.0    7
d  NaN    6

可以根据index提取出部分数据,并用collumns改变列名

d = pd.DataFrame(dt,index=["b","c","d"],columns = ["two","three"])
>>>d
   two three
b    8   NaN
c    7   NaN
d    6   NaN

从列表类型的字典创建

dl = {'one':[1,2,3,4],'two':[9,8,7,6]}
d = pd.DataFrame(dl, index=["a","b","c","d"])
>>>d
   one  two
a    1    9
b    2    8
c    3    7
d    4    6

实例

image.png

将上述表格用dataframe类型表示出来,代码如下:

##实例
import pandas as pd
dl = {'城市': ['beijing','shanghai','guangzhou','shengzheng','shengyang'],
      '环比': [101.5 , 101.2 , 101.3 , 102.0 , 100.1],
      '同比': [120.7 , 127.3 , 119.4 , 140.9 , 101.4],
      '定基': [121.4 , 127.8 , 120.0 , 145.5 , 101.6 ]}
d = pd.DataFrame(dl,index=["c1","c2","c3","c4","c5"])
d
>>>d
            城市     环比     同比     定基
c1     beijing  101.5  120.7  121.4
c2    shanghai  101.2  127.3  127.8
c3   guangzhou  101.3  119.4  120.0
c4  shengzheng  102.0  140.9  145.5
c5   shengyang  100.1  101.4  101.6

d.index,d.columns,d.values 等函数的使用,如下

>>>d.index
Index(['c1', 'c2', 'c3', 'c4', 'c5'], dtype='object')
>>>d.columns
Index(['城市', '环比', '同比', '定基'], dtype='object')
>>>d.values
array([['beijing', 101.5, 120.7, 121.4],
       ['shanghai', 101.2, 127.3, 127.8],
       ['guangzhou', 101.3, 119.4, 120.0],
       ['shengzheng', 102.0, 140.9, 145.5],
       ['shengyang', 100.1, 101.4, 101.6]], dtype=object)

需要注意的是,d.values输出的是datdaframe的数值部分,以ndarray类型表示。

dataframe提取数据

同样也是切片操作

import pandas as pd
dl = {'城市': ['beijing','shanghai','guangzhou','shengzheng','shengyang'],
      '环比': [101.5 , 101.2 , 101.3 , 102.0 , 100.1],
      '同比': [120.7 , 127.3 , 119.4 , 140.9 , 101.4],
      '定基': [121.4 , 127.8 , 120.0 , 145.5 , 101.6 ]}
d = pd.DataFrame(dl,index=["c1","c2","c3","c4","c5"])
d['同比']
Out[13]: 
c1    120.7
c2    127.3
c3    119.4
c4    140.9
c5    101.4
Name: 同比, dtype: float64

d['同比']['c2']
Out[14]: 127.3
#最新版的panda移除了DataFrame.ix命令
d.ix["c",]
##会报错:AttributeError: 'DataFrame' object has no attribute 'ix'
#只能用整数来提取同一行的数据,可以改为

d.iloc[2,]
Out[17]: 
城市    guangzhou
环比        101.3
同比        119.4
定基        120.0
Name: c3, dtype: object

总结

dataframe是一个二维带“标签”的数组

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容