pandas
中具有两种基本的数据存储结构,存储一维values
的Series
和存储二维values
的DataFrame
,在这两种结构上定义了很多的属性和方法。
1. Series
Series
一般由四个部分组成,分别是序列的值data
、索引index
、存储类型dtype
、序列的名字name
。其中,索引也可以指定它的名字,默认为空。
s = pd.Series(data = [100, 'a', {'dic1':5}], index = pd.Index(['id1', 20, 'third'], name='my_idx'), dtype = 'object', name = 'my_name') s
my_idx id1 100 20 a third {'dic1': 5} Name: my_name, dtype: object
【NOTE】object
类型
object
代表了一种混合类型,正如上面的例子中存储了整数、字符串以及Python
的字典数据结构。此外,目前pandas
把纯字符串序列也默认认为是一种object
类型的序列,但它也可以用string
类型存储,文本序列的内容会在第八章中讨论。
【END】
对于这些属性,可以通过 . 的方式来获取:
s.values
array([100, 'a', {'dic1': 5}], dtype=object)
s.index
Index(['id1', 20, 'third'], dtype='object', name='my_idx')
s.dtype
dtype('O')
s.name
'my_name'
利用.shape
可以获取序列的长度:
s.shape
(3,)
索引是pandas
中最重要的概念之一,它将在第三章中被详细地讨论。如果想要取出单个索引对应的值,可以通过[index_item]
可以取出。
2. DataFrame
DataFrame
在Series
的基础上增加了列索引,一个数据框可以由二维的data
与行列索引来构造:
data = [[1, 'a', 1.2], [2, 'b', 2.2], [3, 'c', 3.2]] df = pd.DataFrame(data = data, index = ['row_%d'%i for i in range(3)], columns=['col_0', 'col_1', 'col_2']) df
col_0 | col_1 | col_2 | |
row_0 | 1 | a | 1.2 |
row_1 | 2 | b | 2.2 |
row_2 | 3 | c | 3.2 |
但一般而言,更多的时候会采用从列索引名到数据的映射来构造数据框,同时再加上行索引:
df = pd.DataFrame(data = {'col_0': [1,2,3], 'col_1':list('abc'), 'col_2': [1.2, 2.2, 3.2]}, index = ['row_%d'%i for i in range(3)]) df
col_0 | col_1 | col_2 | |
row_0 | 1 | a | 1.2 |
row_1 | 2 | b | 2.2 |
row_2 | 3 | c | 3.2 |
由于这种映射关系,在DataFrame
中可以用[col_name]
与[col_list]
来取出相应的列与由多个列组成的表,结果分别为Series
和DataFrame
:
df['col_0'] 复制代码
row_0 1 row_1 2 row_2 3 Name: col_0, dtype: int64
df[['col_0', 'col_1']]
col_0 | col_1 | |
row_0 | 1 | a |
row_1 | 2 | b |
row_2 | 3 | c |
与Series
类似,在数据框中同样可以取出相应的属性:
df.values
array([[1, 'a', 1.2], [2, 'b', 2.2], [3, 'c', 3.2]], dtype=object)
df.index
Index(['row_0', 'row_1', 'row_2'], dtype='object')
df.columns
Index(['col_0', 'col_1', 'col_2'], dtype='object')
df.dtypes # 返回的是值为相应列数据类型的Series
col_0 int64 col_1 object col_2 float64 dtype: object
df.shape
(3, 3)
通过.T
可以把DataFrame
进行转置:
df.T
row_0 | row_1 | row_2 | |
col_0 | 1 | 2 | 3 |
col_1 | a | b | c |
col_2 | 1.2 | 2.2 | 3.2 |