DataFrame,顾名思义主要指的是矩阵。
#DataFrame
#DataFrame对象
"""
DataFrame在Pandas中用于表示矩阵数据
DataFrame包含了已排序的列集合
每一列可以是不同的值类型(数值、字符串、布尔值等)
DataFrame既有行索引index,也有列索引columns
DataFrame可以理解为一个共享相同索引的Series的字典
"""
#2、构建DataFrame
import pandas as pd
import numpy as np
data={'name':['A','B','B'],
'gender':['M','F','M'],
'age':[22,23,24]}
c = pd.DataFrame(data)
print(c)
"""
输出:
name gender age
0 A M 22
1 B F 23
2 C M 24
"""
#用嵌套字典构建DataFrame
#嵌套字典构建DataFrame时,Pandas将字典的键做为列索引,将内部字典的键作为行进行索引
data= {'name':{1:'A',2:'B',3:'C'},
'gender':{1:'M',2:'F'},
'age':{1:22,2:23,3:24}}
c = pd.DataFrame(data)
#2、检索DataFrame
"""
若DataFrame数据量太大,可以用df.head()筛选出最前面的五行
如df[‘name’](任意列名) 列名为属性,如df.name
选择一行,可以使用属性loc返回一个Series对象。如df.loc[1],
索引的名字即为当前行的列索引“1” ,索引名字为各列的名字
"""
#3、重置索引
#重新索引方法reindex()
d=pd.DataFrame(np.arange(9).reshape(3,3),
index=['a','c','d '],
columns=['one','two','four'])
print(d)
"""
one two four
a 0 1 2
c 3 4 5
d 6 7 8
"""
#默认对行进行重新索引,如
e = d.reindex(['a','b','c','d'])
print(e)
"""
one two four
a 0.0 1.0 2.0
b NaN NaN NaN
c 3.0 4.0 5.0
d NaN NaN NaN
"""
#可以同时对列和行进行索引,如
e = d.reindex(index=['a','b','c','d'],
columns=['one','two','three','four'])
print(e)
"""
one two three four
a 0.0 1.0 NaN 2.0
b NaN NaN NaN NaN
c 3.0 4.0 NaN 5.0
d NaN NaN NaN NaN
"""
#缺失值自动用NaN填充
#使用参数fill_value=n,用n代替缺失值
#4、索引对象
#索引对象用于存储轴标签和其他元数据
#用pd.index()生成索引对象,或从Series和DataFrame的行列索引
labels=pd.index(np.arange(3))
labels=d.index
labels=d.columns
f = pd.Series([1.3,-3.4,0], index = labels)
print(f)
"""
如果报错:AttributeError: module 'pandas' has no attribute 'index'
则是版本不对,旧的版本中pandas会有,不可以不练习此处,了解就好。
正确版本:pandas 0.19.2,在powershell 中输入pip install pandas=0.19.2
"""