DataFrame 是由索引和内容组成的,索引有: 行索引和列索引;
创建方式:
pd.DataFrame(ndarray数据,index=[‘行索引1’,‘行索引2’],colunms=[‘列索引1’,‘列索引2’])
使用例子:
1 列表形式数据(列表内元素是数值)构建DataFrame
- >>> import numpy as np
- >>> import pandas as pd
- >>> a=pd.DataFrame(np.arange(18).reshape(3,6),index=['a','b','c'],columns=['A','B','C','D','E','F'])
- >>> a
- A B C D E F
- a 0 1 2 3 4 5
- b 6 7 8 9 10 11
- c 12 13 14 15 16 17
2 列表形式数据(列表内元素是字典)构建DataFrame
- >>> a=pd.DataFrame([{'a':0,'b':3,'c':6},{'a':1,'b':4,'c':7},{'a':2,'b':8,'c':5}])
- >>> a
- a b c
- 0 0 3 6
- 1 1 4 7
- 2 2 8 5
- >>> a=pd.DataFrame([{'a':0,'b':3,'c':6},{'a':1,'b':4,'c':7},{'a':2,'b':8}])
- >>> a
- a b c
- 0 0 3 6.0
- 1 1 4 7.0
- 2 2 8 NaN
- >>> a=pd.DataFrame([{'a':0,'b':3,'c':6},{'a':1,'b':4,'c':7},{'a':2,'b':8, 'd':4}])
- >>> a
- a b c d
- 0 0 3 6.0 NaN
- 1 1 4 7.0 NaN
- 2 2 8 NaN 4.0
3 字典类型数据构建DataFrame
- >>> b=pd.DataFrame({'a':[0,1,2],'b':[3,4,8],'c':[6,7,5]})
- >>> b
- a b c
- 0 0 3 6
- 1 1 4 7
- 2 2 8 5
1 shape 属性:查看形状;
2 dtypes 属性: DataFrame的列数据类型
3 df[df.index==某行索引值]:对某行内容进行索引
4 df.columns:列索引
5 df.head():仅显示前面几行数据(默认是前五行)
6 df.tail():仅显示最后几行数据(默认是后五行)
7 df.values:仅返回数据框中的值,轴标签将被删除
8 查看某行某列数据
df.loc[]函数和df.iloc[]函数
例子:
- >>> a=pd.DataFrame(np.arange(15).reshape(3,5),index=['a','b','c'],columns=['aa','bb','cc','dd','ee'])
- >>> a.loc['a':'b','aa':'dd']
- aa bb cc dd
- a 0 1 2 3
- b 5 6 7 8
- >>> a.iloc[0:1,0:3]
- aa bb cc
- a 0 1 2
iterrows()iterrows() 是在DataFrame中的行进行迭代的一个生成器,返回每行的索引及一个包含行本身的对象;
在需要遍历行数据的时候,就可以使用 iterrows()方法实现了;
- >>> df = pd.DataFrame(np.random.randn(3, 4), columns=list('ABCD'))
- >>> df
- A B C D
- 0 -0.859642 -1.785623 1.193805 -0.033643
- 1 2.065668 -0.134116 0.538970 -0.638147
- 2 0.632350 -0.380048 2.446963 0.129857
-
- >>> for index, row in df.iterrows():
- ... print(index)
- ... print(row)
- ...
- 0
- A -0.859642
- B -1.785623
- C 1.193805
- D -0.033643
- Name: 0, dtype: float64
- 1
- A 2.065668
- B -0.134116
- C 0.538970
- D -0.638147
- Name: 1, dtype: float64
- 2
- A 0.632350
- B -0.380048
- C 2.446963
- D 0.129857
- Name: 2, dtype: float64