1. 数据结构
Pandas主要有三种数据:
- Series(一维数据,大小不可变)
- DataFrame(二维数据,大小可变)
- Panel(三维数据,大小可变)
Series
具有均匀数据的一维数组结构。例如1,3,5,7,...的集合
1 | 3 | 5 | 7 | ... |
关键点
- 均匀数据
- 尺寸大小不变
- 数据值可变
DataFrame
具有异构数据的二维数据。例如
姓名 | 年龄 | 性别 |
小明 | 20 | 男 |
小红 | 15 | 女 |
小刚 | 18 | 男 |
关键点
- 异构数据
- 大小可变
- 数据可变
Panel
具有异构数据的三维数据结构,可以说成是DataFrame的容器。
关键点
- 异构数据
- 大小可变
- 数据可变
2. Series
Series是能够保存任何类型的数据(整型,字符串,浮点数,python对象等)的一维标记数据。
构造函数
pandas.Series(data, index, dtype, copy)
参数 | 描述 |
data | 数据采取各种形式,如:ndarray,list,constants |
index | 索引值必须是唯一的和散列的,与数据的长度相同。默认np.arange(n)如果没有索引被传递。 |
dtype | 用于数据类型。如果没有,将推断数据类型。 |
copy | 复制数据,默认为false |
构建一个空的Series
1 import pandas as pd 2 s=pd.Series() 3 print(s)
Series([], dtype: float64)
如果数据是ndarray,则传递的索引必须具有相同的长度。如果没有传递索引值,那么默认索引是(0 - n-1)
1 import pandas as pd 2 import numpy as np 3 data = np.array(['a','b','c','d']) 4 s = pd.Series(data) 5 print(s)
0 a 1 b 2 c 3 d dtype: object
1 import pandas as pd 2 import numpy as np 3 data = np.array(['a','b','c','d']) 4 s = pd.Series(data,index=[100,101,102,103]) 5 print(s)
100 a 101 b 102 c 103 d dtype: object
从字典(dict)创建一个Series,没有指定索引,则使用字典键作为索引,如果指定索引则使用指定的索引值。
1 import pandas as pd 2 import numpy as np 3 data = {'a' : 0., 'b' : 1., 'c' : 2.} 4 s = pd.Series(data) 5 print(s)输出
a 0.0 b 1.0 c 2.0 dtype: float64
1 import pandas as pd 2 import numpy as np 3 data = {'a' : 0., 'b' : 1., 'c' : 2.} 4 s = pd.Series(data,index=['b','c','d','a']) 5 print(s)
b 1.0 c 2.0 d NaN a 0.0 dtype: float64
从标量创建一个系列,如果数据是标量值,则必须提供索引。如果索引长度超过数据长度,则将重复该值以匹配索引的长度。
1 import pandas as pd 2 import numpy as np 3 s = pd.Series(5, index=[0, 1, 2, 3]) 4 print(s)
0 5 1 5 2 5 3 5 dtype: int64
从具有位置的Series中访问数据,Series中的数据可以使用类似访问ndarray中的数据来访问。
1 import pandas as pd 2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) 3 print(s) 4 print(s[0])
a 1 b 2 c 3 d 4 e 5 dtype: int64 1
1 import pandas as pd 2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) 3 print(s[:3])
a 1 b 2 c 3 dtype: int64
1 import pandas as pd 2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) 3 print(s[-3:])
c 3 d 4 e 5 dtype: int64
1 import pandas as pd 2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) 3 print(s['a'])
1
1 import pandas as pd 2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) 3 print(s[['a','c','d']])
a 1 c 3 d 4 dtype: int64
如果不包含标签,则会出项异常。
3. DataFrame
pandas.DataFrame(data, index, columns, dtype, copy)
构造函数的参数:
参数 | 描述 |
data | 数据采取各种形式,如:ndarray,series,map,lists,dict,constant和DataFrame。 |
index | 对于行标签 |
columns | 对于列标签 |
dtype | 每列的数据类型 |
copy | 默认值为False |
创建一个空的DataFrame
1 import pandas as pd 2 df = pd.DataFrame() 3 print(df)
Empty DataFrame Columns: [] Index: []
从列表创建DataFrame
1 import pandas as pd 2 data = [1,2,3,4,5] 3 df = pd.DataFrame(data) 4 print(df)
0 0 1 1 2 2 3 3 4 4 5
1 import pandas as pd 2 data = [['Alex',10],['Bob',12],['Clarke',13]] 3 df = pd.DataFrame(data,columns=['Name','Age']) 4 print(df)
Name Age 0 Alex 10 1 Bob 12 2 Clarke 13
1 import pandas as pd 2 data = [['Alex',10],['Bob',12],['Clarke',13]] 3 df = pd.DataFrame(data,columns=['Name','Age'],dtype=float) 4 print(df)
Name Age 0 Alex 10.0 1 Bob 12.0 2 Clarke 13.0
从ndarray/Lists的字典来创建DataFrame,所有的ndarrays必须具有相同的长度,如果传递了索引,则索引的长度应等于数组的长度,如果没有则使用默认索引。
1 import pandas as pd 2 data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]} 3 df = pd.DataFrame(data) 4 print(df)
Name Age 0 Tom 28 1 Jack 34 2 Steve 29 3 Ricky 42
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。