03-python-pandas-data-structures
3. Pandas之:深入理解Pandas的数据结构
简介
本文将会讲解Pandas中基本的数据类型Series和DataFrame,并详细讲解这两种类型的创建,索引等基本行为。
使用Pandas需要引用下面的lib:
In [1]: import numpy as np
In [2]: import pandas as pdSeries
Series是一维带label和index的数组。我们使用下面的方法来创建一个Series:
>>> s = pd.Series(data, index=index)这里的data可以是Python的字典,np的ndarray,或者一个标量。
index是一个横轴label的list。接下来我们分别来看下怎么创建Series。
从ndarray创建
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
s
Out[67]:
a -1.300797
b -2.044172
c -1.170739
d -0.445290
e 1.208784
dtype: float64使用index获取index:
从dict创建
从标量创建
Series 和 ndarray
Series和ndarray是很类似的,在Series中使用index数值表现的就像ndarray:
Series和dict
如果使用label来访问Series,那么它的表现就和dict很像:
矢量化操作和标签对齐
Series可以使用更加简单的矢量化操作:
Name属性
Series还有一个name属性,我们可以在创建的时候进行设置:
s还有一个rename方法,可以重命名s:
DataFrame
DataFrame是一个二维的带label的数据结构,它是由Series组成的,你可以把DataFrame看成是一个excel表格。DataFrame可以由下面几种数据来创建:
一维的ndarrays, lists, dicts, 或者 Series
结构化数组创建
2维的numpy.ndarray
其他的DataFrame
从Series创建
可以从Series构成的字典中来创建DataFrame:
进行index重排:
进行列重排:
从ndarrays 和 lists创建
从结构化数组创建
可以从结构化数组中创建DF:
从字典list创建
从元组中创建
可以从元组中创建更加复杂的DF:
列选择,添加和删除
可以像操作Series一样操作DF:
可以删除特定的列,或者pop操作:
如果插入常量,那么会填满整个列:
默认会插入到DF中最后一列,可以使用insert来指定插入到特定的列:
使用assign 可以从现有的列中衍生出新的列:
注意, assign 会创建一个新的DF,原DF保持不变。
下面用一张表来表示DF中的index和选择:
选择列
df[col]
Series
通过label选择行
df.loc[label]
Series
通过数组选择行
df.iloc[loc]
Series
行的切片
df[5:10]
DataFrame
使用boolean向量选择行
df[bool_vec]
DataFrame
本文已收录于 www.flydean.com
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
最后更新于
这有帮助吗?