Pandas快速入门
一.Pandas基本介绍
1.Numpy和Pandas的异同
如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式。Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。要使用pandas,首先需要了解他主要两个数据结构:Series和DataFrame。
2.Series
Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引。于是会自动创建一个0到N-1(N为长度)的整数型索引。
import numpy as np
import pandas as pd
s=pd.Series([1,2,3,4])
print(s)
'''
0 1
1 2
2 3
3 4
dtype: int64
'''
3.DataFrame
DataFrame是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。DataFrame既有行索引也有列索引, 它可以被看做由Series组成的大字典。
import numpy as np
import pandas as pd
dates=pd.date_range('20180930',periods=6)
df=pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
print(df)
'''
a b c d
2018-09-30 1.993737 1.309212 -0.948103 1.021250
2018-10-01 -1.019824 0.172133 0.173929 0.646952
2018-10-02 0.623758 1.236775 -0.221444 -0.477707
2018-10-03 0.124593 0.843158 1.099162 -0.520331
2018-10-04 0.099328 0.998525 2.023019 2.174637
2018-10-05 0.293913 -2.181669 -0.180980 0.050529
'''
(1) df的两种生成方式
- 创建一组没有给定行标签和列标签的数据 df1,这样,他就会采取默认的从0开始 index;
- 也可以用字典的方式创建
(2)获取DataFrame的列名是一个比较简单的操作,又以下几个方法:
- [column for column in df]
- df.columns.values 返回 array, 可以通过 tolist(), 或者 list(array) 转换为list,一般 tolist()效率更高。
- list(df)
- df.columns 返回Index,可以通过 tolist(), 或者 list(array) 转换为list
(3)DataFrame的简单应用
- 查看表中数据中的属性:df2.dtypes
- 查看表的行号:df2.index
- 查看表的列号:如(2)中介绍
- 只想查看表中的具体数据:df2.values
- 得到表中数据的总结:df2.describe()
- 翻转数据:df2.T
- 对数据按照columns进行排序输出:df2.sort_index(axis=1,ascending=False),后面代表降序排列
- 对数据值进行排序输出:df.sort_values(by='E')
import numpy as np
import pandas as pd
#df第一种创建方式
df1=pd.DataFrame(np.arange(12).reshape((3,4)))
print(df1)
'''
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
'''
#df第二种创建方式
df2=pd.DataFrame(
{
'A':1,
'B':pd.Timestamp('20180930'),
'C':pd.Series(1,index=list(range(4)),dtype='float32'),
'D':np.array([3]*4,dtype='int32'),
'E':pd.Categorical(['test','train','test','train']),
'F':'foo'
}
)
print(df2)
'''
A B C D E F
0 1 2018-09-30 1.0 3 test foo
1 1 2018-09-30 1.0 3 train foo
2 1 2018-09-30 1.0 3 test foo
3 1 2018-09-30 1.0 3 train foo
'''
#1.查看表中数据中的属性
print(df2.dtypes)
'''
A int64
B datetime64[ns]
C float32
D int32
E category
F object
dtype: object
'''
#2.查看表的行号
print(df2.index)
'''
Int64Index([0, 1, 2, 3], dtype='int64')
'''
#3.查看表的列号
print(list(df2.columns.values))
'''
['A', 'B', 'C', 'D', 'E', 'F']
'''
#4.只想查看表中的具体数据
print(df2.values)
'''
[[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'test' 'foo']
[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'train' 'foo']
[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'test' 'foo']
[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'train' 'foo']]
'''
#5.得到表中数据的总结
print(df2.describe())
#6.翻转数据
print(df2.T)
#7.对数据按照columns进行排序输出
print(df2.sort_index(axis=1,ascending=False))
'''
F E D C B A
0 foo test 3 1.0 2018-09-30 1
1 foo train 3 1.0 2018-09-30 1
2 foo test 3 1.0 2018-09-30 1
3 foo train 3 1.0 2018-09-30 1
'''
#8.对数据值进行排序输出
print(df2.sort_values(by='E'))
'''
A B C D E F
0 1 2018-09-30 1.0 3 test foo
2 1 2018-09-30