DataFrame基础

2020-11-20  本文已影响0人  Chaweys

'''
什么是DataFrame?
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。
DataFrame既有行索引也有列索引,它可以被看做由series组成的字典(共用同一个索引)。
可以看作是一张表。
'''

#coding=utf-8
import pandas as pd
import numpy as np

#创建DataFrame(两种方式)
#方式一:np.array()创建
arr=np.array([[1,2,3],[4,5,6],[7,8,9]])
df = pd.DataFrame(arr)
print(df)
'''
   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9
'''

#指定行索引和列索引
df = pd.DataFrame(arr,index=['a','b','c'],columns=['d','e','f'])
print(df)
'''
   d  e  f
a  1  2  3
b  4  5  6
c  7  8  9
'''


#方式二:字典方式创建
dicts={"state":{0:"ohio",1:"ohio",2:"ohio",3:"nevada",4:"nevada"},
       "year":{0:2000,1:2001,2:2002,3:2001,4:2002},
       "pop":{0:1.5,1:1.7,2:3.6,3:2.4,4:2.9}
       }
df2 = pd.DataFrame(dicts)
print(df2)
'''
   pop   state  year
0  1.5    ohio  2000
1  1.7    ohio  2001
2  3.6    ohio  2002
3  2.4  nevada  2001
4  2.9  nevada  2002
'''

#DataFrame查看数据head()查看头数据
print(df2.head())
'''
head()未传参,默认查看前五行
   pop   state  year
0  1.5    ohio  2000
1  1.7    ohio  2001
2  3.6    ohio  2002
3  2.4  nevada  2001
4  2.9  nevada  2002
'''

print(df2.head(2))
'''
head(2)查看前两行
   pop state  year
0  1.5  ohio  2000
1  1.7  ohio  2001
'''

print(df2.head(3))
'''
head(3)查看前三行
   pop state  year
0  1.5  ohio  2000
1  1.7  ohio  2001
2  3.6  ohio  2002
'''

#DataFrame查看数据tail()查看尾数据
print(df2.tail())
'''
tail()未传参,默认查看所有
   pop   state  year
0  1.5    ohio  2000
1  1.7    ohio  2001
2  3.6    ohio  2002
3  2.4  nevada  2001
4  2.9  nevada  2002
'''

print(df2.tail(2))
'''
tail(2)查看尾部两行
   pop   state  year
3  2.4  nevada  2001
4  2.9  nevada  2002
'''

print(df2.tail(3))
'''
tail(3)查看尾部三行
   pop   state  year
2  3.6    ohio  2002
3  2.4  nevada  2001
4  2.9  nevada  2002
'''

print(df2.info())
'''
info()查看数据结构即存储信息

<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 3 columns):
pop      5 non-null float64
state    5 non-null object
year     5 non-null int64
dtypes: float64(1), int64(1), object(1)
memory usage: 160.0+ bytes
None
'''

#describe()查看数据按列的方式的统计结果信息
print(df2.describe())
'''
describe()查看数据按列的方式的统计结果信息

            pop        year
count  5.000000     5.00000   总数
mean   2.420000  2001.20000   平均值
std    0.864292     0.83666   标准差
min    1.500000  2000.00000   最小值
25%    1.700000  2001.00000   分位数(有25%的数据小于该值)
50%    2.400000  2001.00000   分位数(有50%的数据小于该值)
75%    2.900000  2002.00000   分位数(有75%的数据小于该值)
max    3.600000  2002.00000   最大值
'''

#mean()求每列的平均值
print(df2.mean())
'''
pop        2.42
year       2001.20
dtype:     float64
'''

#median()求得每列的中位数
print(df2.median())
'''
pop        2.4
year       2001.0
dtype:     float64
'''


#df2.index获取行级索引
print(df2.index)
#结果:Int64Index([0, 1, 2, 3, 4], dtype='int64')

#df2.columns获取列级索引
print(df2.columns)
#结果;Index(['pop', 'state', 'year'], dtype='object')


#DataFrame的转置:行和列进行转置
print(df2.T)
'''
          0     1     2       3       4
pop     1.5   1.7   3.6     2.4     2.9
state  ohio  ohio  ohio  nevada  nevada
year   2000  2001  2002    2001    2002
'''


#DataFrame排序:sort_index(),按照索引来排序
#sort_index(axis=0)按照行索引排序0 1 2 3 4
print(df2)
print(df2.sort_index(axis=0))
print(df2.sort_index(axis=0,ascending=False)) #降序
'''
df2:
   pop   state  year
0  1.5    ohio  2000
1  1.7    ohio  2001
2  3.6    ohio  2002
3  2.4  nevada  2001
4  2.9  nevada  2002

sort_index(axis=0)
   pop   state  year
0  1.5    ohio  2000
1  1.7    ohio  2001
2  3.6    ohio  2002
3  2.4  nevada  2001
4  2.9  nevada  2002

sort_index(axis=0,ascending=False
4  2.9  nevada  2002
3  2.4  nevada  2001
2  3.6    ohio  2002
1  1.7    ohio  2001
0  1.5    ohio  2000

'''

#sort_index(axis=1)按照列索引排序
print(df2.sort_index(axis=1))
print(df2.sort_index(axis=1,ascending=False))  #降序排序
'''
sort_index(axis=1)
   pop   state  year
0  1.5    ohio  2000
1  1.7    ohio  2001
2  3.6    ohio  2002
3  2.4  nevada  2001
4  2.9  nevada  2002

sort_index(axis=1,ascending=False)
   year   state  pop
0  2000    ohio  1.5
1  2001    ohio  1.7
2  2002    ohio  3.6
3  2001  nevada  2.4
4  2002  nevada  2.9
'''

上一篇下一篇

猜你喜欢

热点阅读