Python数据分析

Python数据分析 知识量:13 - 56 - 232

3.2 DataFrame数据结构><

什么是DataFrame- 3.2.1 -

DataFrame是pandas模块的另一种数据结构,而且是最为重要的数据结构。DataFrame由一组数据与一对索引(行索引和列索引)组成,形式上与Excel表格的数据存储形式相似,因此称为表格型数据结构。

因为数据结构的特殊性,DataFrame可以轻松的与数据库、Excel、csv、txt等格式的数据进行转换和交互。因此,DataFrame数据结构在数据分析中具有重要的意义。以下是一个DataFrame数据结构的示例:

   0
0  a
1  b
2  c

DataFrame数据对象具有行索引和列索引,且由这一组索引来确定唯一值。以上示例中,左边列0、1、2是行索引;第2列最上面的0是列索引。

创建DataFrame数据- 3.2.2 -

使用pd.DataFrame()函数来创建DataFrame对象。当传入的参数是一个单一列表时,DataFrame对象会显示成一列,行索引和列索引都以0为开始值:

import pandas as pd
df=pd.DataFrame(['a','b','c'])
print(df)

运行结果为:

   0
0  a
1  b
2  c

当传入的参数是一个嵌套列表时,DataFrame对象会显示成多列数据。

import pandas as pd
df=pd.DataFrame([['a','b','c'],[1,2,3]])
print(df,'\n')
df=pd.DataFrame([(1,'a',3),(2,'b',5),(3,'c',7)])
print(df)

运行结果为:

   0  1  2
0  a  b  c
1  1  2  3 

   0  1  2
0  1  a  3
1  2  b  5
2  3  c  7

如上所示,除了列表也可以使用元组创建DataFrame对象,效果一样。

指定行列索引- 3.2.3 -

除了使用默认行、列索引外,在创建DataFrame对象时,可以通过参数index设置行索引,通过columns设置列索引。

import pandas as pd
df=pd.DataFrame([[5,6,7],[1,2,3]],index=['apple','pear'],columns=['Jeff','Lily','John'])
print(df)

运行结果为:

       Jeff  Lily  John
apple     5     6     7
pear      1     2     3

使用字典创建对象- 3.2.4 -

使用字典创建DataFrame对象时,字典的key值相当于列索引,行索引使用默认值,当然也可以通过参数index指定。

import pandas as pd
dic={'Jeff':[66,78,59],'Lily':[77,89,90],'Bob':[58,99,72]}
df=pd.DataFrame(dic)
print(df,'\n')
df=pd.DataFrame(dic,index=['test1','test2','test3'])
print(df)

运行结果为:

   Jeff  Lily  Bob
0    66    77   58
1    78    89   99
2    59    90   72 

       Jeff  Lily  Bob
test1    66    77   58
test2    78    89   99
test3    59    90   72

获取行列索引- 3.2.5 -

与Series数据结构一样,可以使用index方法获取DataFrame对象的行索引。此外,可以使用columns方法获取列索引。

import pandas as pd
dic={'Jeff':[66,78,59],'Lily':[77,89,90],'Bob':[58,99,72]}
df=pd.DataFrame(dic,index=['test1','test2','test3'])
print(df)
print(df.index)
print(df.columns)

运行结果为:

       Jeff  Lily  Bob
test1    66    77   58
test2    78    89   99
test3    59    90   72
Index(['test1', 'test2', 'test3'], dtype='object')
Index(['Jeff', 'Lily', 'Bob'], dtype='object')