Numpy 和 Pandas 有什么不同?
如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式。Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。
pandas基本功能和使用方法有哪些?
要使用pandas,首先需要了解他主要两个数据结构:Series和DataFrame。
Demo.py
import pandas as pd
import numpy as np
#Series的创建:
#Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引。
#于是会自动创建一个0到N-1(N为长度)的整数型索引。
s = pd.Series([1,3,6,np.nan,44,1])
print(s)
#DataFrame 的创建:
#DataFrame是一个表格型的数据结构,它包含有一组有序的列,
#每列可以是不同的值类型(数值,字符串,布尔值等)。
#DataFrame既有行索引也有列索引, 它可以被看做由Series组成的大字典。
dates = pd.date_range('20160101',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
print(df)
#DataFrame 的一些简单运用
#我们可以根据每一个不同的索引来挑选数据, 比如挑选 b 的元素:
print df['b']
#创建一组没有给定行标签和列标签的数据 df1
df1 = pd.DataFrame(np.arange(12).reshape((3,4)))
print(df1)
# 还有一种生成 df 的方法, 如下 df2:
#这种方法能对每一列的数据进行特殊对待
df2 = pd.DataFrame({'A' : 1.,
'B' : pd.Timestamp('20130102'),
'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)
#查看数据中的类型, 可以用 dtype 这个属性:
print(df2.dtypes)
#查看对列的序号:
print(df2.index)
#查看每种数据的名称:
print(df2.columns)
#只想查看所有df2的值:
print(df2.values)
#想知道数据的总结, 可以用 describe()
print df2.describe()
#想翻转数据, transpose:
print(df2.T)
#想对数据的 index 进行排序并输出
print(df2.sort_index(axis=1, ascending=False))
#对数据值排序输出:
print(df2.sort_values(by='B'))
结果:
0 1.0
1 3.0
2 6.0
3 NaN
4 44.0
5 1.0
dtype: float64
a b c d
2016-01-01 0.883398 0.033547 -0.394937 -0.337354
2016-01-02 0.132106 1.057983 -1.007236 -0.311857
2016-01-03 1.255509 1.284663 -0.534759 -0.291661
2016-01-04 1.119228 -0.363833 0.877059 -1.313416
2016-01-05 0.356150 1.431102 1.671152 0.836090
2016-01-06 -0.070478 0.421939 0.591910 0.213282
2016-01-01 0.033547
2016-01-02 1.057983
2016-01-03 1.284663
2016-01-04 -0.363833
2016-01-05 1.431102
2016-01-06 0.421939
Freq: D, Name: b, dtype: float64
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo
A float64
B datetime64[ns]
C float32
D int32
E category
F object
dtype: object
Int64Index([0, 1, 2, 3], dtype='int64')
Index([u'A', u'B', u'C', u'D', u'E', u'F'], dtype='object')
[[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'test' 'foo']
[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'train' 'foo']
[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'test' 'foo']
[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'train' 'foo']]
A C D
count 4.0 4.0 4.0
mean 1.0 1.0 3.0
std 0.0 0.0 0.0
min 1.0 1.0 3.0
25% 1.0 1.0 3.0
50% 1.0 1.0 3.0
75% 1.0 1.0 3.0
max 1.0 1.0 3.0
0 1 2 \
A 1 1 1
B 2013-01-02 00:00:00 2013-01-02 00:00:00 2013-01-02 00:00:00
C 1 1 1
D 3 3 3
E test train test
F foo foo foo
3
A 1
B 2013-01-02 00:00:00
C 1
D 3
E train
F foo
F E D C B A
0 foo test 3 1.0 2013-01-02 1.0
1 foo train 3 1.0 2013-01-02 1.0
2 foo test 3 1.0 2013-01-02 1.0
3 foo train 3 1.0 2013-01-02 1.0
A B C D E F
0 1.0 2013-01-02 1.0 3 test foo
1 1.0 2013-01-02 1.0 3 train foo
2 1.0 2013-01-02 1.0 3 test foo
3 1.0 2013-01-02 1.0 3 train foo