Chapter 5 Getting started with pandas
之前没有系统看过这本书,现在准备在blog上写笔记,记录一些以前没注意的或是觉得重要的,略去一些已知的
Data Frame 基本
- df.head()会显示前5行用于展示
- 给已有df添加列,若用list array加,其长度要与原先相同,若用Series则不必In [57]: frame2
- Out[57]:
year state pop debt
one 2000 Ohio 1.5 0.0
two 2001 Ohio 1.7 1.0
three 2002 Ohio 3.6 2.0
four 2001 Nevada 2.4 3.0
five 2002 Nevada 2.9 4.0
six 2003 Nevada 3.2 5.0 - In [58]: val = pd.Series([-1.2, -1.5, -1.7], index=['two', 'four', 'five'])
In [59]: frame2['debt'] = val
In [60]: frame2
Out[60]:
year state pop debt
one 2000 Ohio 1.5 NaN
two 2001 Ohio 1.7 -1.2
three 2002 Ohio 3.6 NaN
four 2001 Nevada 2.4 -1.5
five 2002 Nevada 2.9 -1.7
six 2003 Nevada 3.2 NaN - 为一个不存在的列赋值会创造一个新列,del 可以删除列
- (重要)对于df一些操作返回的Series的修改会反应在原df上(The column returned from indexing a DataFrame is a view on the underlying data, not a copy.)
- 可以用DF.T来转置dataframe
Index Object
用作dataframe index的输入list,array等会被转为index object,且是不可转变修改的(immutable)
index可以存在重复
Essential Functionality
reindex:
根据已有df和给定index创建一个新的index
droup
将多行或多列(加参数 axis=1)删掉,返回一个新的df
Indexing, Selection, and Filtering
Series可以和array一样操作
DataFrame一般可以用df['column_name']来索引列,或df[['column_name1', 'column_name2']]索引多列
要索引行:df[:3],但直接df[2]不行
df<5,会返回bool df,可以用来index data[data<5]
ioc和iloc
ioc: 用axis label,iloc:用integer索引
data.loc['Colorado', ['two', 'three']]
data.iloc[2, [3, 0, 1]]
data.iloc[[1, 2], [3, 0, 1]]
data.loc[:'Utah', 'two']
Arithmetic and Data Alignment
Series或者DataFrame加减时,需要index或者index,column一致,不一致的会显示Nah
Nah值操作
用add等方法df1.add(df2, fill_value=0)
Function Application and Mapping
首先,numpy的element-wise 方法依然适用:
或者,对某个单行或单列的操作应用在每一行或列
默认是得到每列不同行的结果,对行操作
当指定 axis='columns'则得到每行不同列的汇总结果,对列操作
也可以返回特定结果
对于element-wise的python方程,用df.applymap(),若是Series用series.map()
Sorting and Ranking
- sort_index()
可以指定行列或者升降序:
frame.sort_index(axis=1, ascending=False)
- sort_values() 默认Nah到最后
- rank() 赋给每个元素其排名,若一样的会用均值
对于一样的也可以用出现顺序排
- 在DataFrame中可以对每一行或列单独rank()操作
一些应对排序时同样大小的方法(tie-breaking):
Summarizing and Computing Descriptive Statistics
- sum() mean() 等
- 一些可选参数:
- *describe()可以显示各种数据描述性信息
方法:
Correlation and Covariance
相关性统计:.corr()
协方差:.cov()
Dataframe 计算一列与其他列的:corrwith()
Unique Values, Value Counts, and Membership