Series 一维,带标签数组
DataFrame 二维,Series容器
df[:20]
前20行
(2)df[:20]['列索引名']
取指定列对应的前20行df['列索引名']
指定列 索引名对应的一列 返回的是Series类型loc
通过标签(即列索引)取值
t.loc['a','b']
取a行b列对应的值t.loc['a']
或t.loc['a',:]
取a对应的一整行t.loc[['a','c'],['b','d']]
多行多列 iloc
通过为止(即行索引)取值
t.iloc[3]
或t.iloc[3,:]
取第四行t.iloc[:,2]
取第三列t.iloc[:,[2,1]]
取第3列和第2列t.iloc[[0,2],[2,1]]
取第1行和第3行对应的第3列和第2列t.iloc[1:,:2]
取1之后每一行对应2之前每一列df[bool判断表达式]
如:df[(df['列索引名']>10) & (df['列索引名']<20 )]
取df中指定列索引对应的值中10-20之间的元素
pd.isnull(t)
返回的数组中NaN为True,否则为False
pd.notnull(t)
返回的数组中NaN为False,否则为True
t.dropna(axis=0)
删除包含NaN的行
t.dropna(axis=0, how='all', inplace=True)
t.fillna(值)
将NaN填充为指定的值,常填充均值等,如t.fillna(t.mean())
会将NaN对应列的均值进行填充
t['列索引名'] = t['列索引名'].fillna(t['列索引名'].mean())
只将指定索引对应的列中NaN对应的值进行填充均值
join()
按行合并 df1.join(df2)
merge()
按列合并df1.merge(df2, on='操作的列名', how='inner')
内连接(默认) 交集df1.merge(df2, on='a')
方法会将df1中a列的值和df2中a列的值进行比较,然后将相等的值对应的整行进行合并,而且返回的结果中只包含具有可以合并的行df1.merge(df2, on='a', how='outer')
外连接,a列包含的数据为df1和df2中a列元素的并集,每行元素分别对应,有则是原数据(一般a列的元素都有,因为操作列为a),没有则是NaN 并集df1.merge(df2, on='a', how='left')
左连接,以df1为准df1.merge(df2, on='a', how='right')
右连接,以df2为准分组: gd = groupby(by='分组字段')
返回类型是可遍历的DataFrameGroupBy类型,遍历后每一个元素为一个元组,
聚合:gd.count()
df.index
获取index
df.index=['x', 'y']
指定index
df.reindex(list('abcdef'))
重新设置index,如果之前没有f行,则f行对应的数据为NaN
df.set_index('a', drop=False)
指定某一列作为index
df.set_index('a').index.unique()
返回index的唯一值
df.swaplevel()
交换符合索引的顺序df.loc['一'].loc['多']
df.loc['多']['一']
df['一','多']
常与swaplevel()搭配