本篇博文主要是对之前的几篇关于pandas
使用技巧的小结,内容包含:
S
型或者DF
型数据,以及如何查看数据apply
使用groupby
机制reshaping
import numpy as np
import pandas as pd
pd.Series([1, 3, 5, np.nan, 6, 89]) # 普通形式
pd.date_range('20190924', periods=6) # 时间间隔形式
指定3个参数
pd.DataFrame(np.random.randn(6,4), index=dates, columns=list("ABCD"))
df
pd.DataFrame({'A': 1., # 某列的值相同
'B': pd.Timestamp('20130102'), # 时间戳的创建
'C': pd.Series(1, index=list(range(4)), dtype='float32'), # 某列值可以是S型数据
'D': np.array([3] * 4, dtype='int32'), # 使用numpy数组
'E': pd.Categorical(["test", "train", "test", "train"]), # 不同的类
'F': 'foo'}) # 使用布尔值
二者都是判断是不是缺失值
# 求出每列的max 和 min
def f(x):
return pd.Series([x.min(), x.max()], index=["min", "max"])
df.apply(f)
f = lambda x: x.max() - x.min()
df.apply(f)# df.apply(f, axis="columns") 表示在行上执行
concat
axis=0
:默认是Series
axis=1
:得到DF
数据,缺值用NaN
补充outer
:合并,缺值用nan
inner
:求交集,非交集部分直接删除keys
:用于层次化索引ignore_index
:不保留连接轴上的索引,产生新的索引merge
可根据⼀个或多个键将不同DataFrame
中的⾏连接起来,它实现的就是数据库的join
操作 ,就是数据库风格的合并
常用参数表格
参数 | 说明 |
---|---|
left | 参与合并的左侧DF |
right | 参与合并的右侧DF |
how | 默认是inner,inner、outer、right、left |
on | 用于连接的列名,默认是相同的列名 |
left_on \right_on | 左侧、右侧DF中用作连接键的列 |
sort | 根据连接键对合并后的数据进行排序,默认是T |
suffixes | 重复列名,直接指定后缀,用元组的形式(’_left’, ‘_right’) |
left_index、right_index | 将左侧、右侧的行索引index作为连接键(用于index的合并) |
groupby
,按照某个属性column
分组,得到的是一个分组之后的对象apply(function)
如何找出每一种职业的平均年龄?并按照平均年龄从大到小排序?
groupby
mean()
sort_values
,默认是升序asc
df.column
df.groupby("occupation").age.mean().sort_values(ascending=False) # 默认是升序
# df.groupby(df["occupation"]).age.mean().sort_values(ascending=False)
# df.groupby(by="occupation").age.mean().sort_values(ascending=False) by可以省略
# 按照职业分组,再对年龄求均值
df['age'].groupby(df['occupation']).mean()
reset_index()
as_index=False
stack:
将数据的列旋转成行,AB由列属性变成行索引unstack:
将数据的行旋转成列,AB由行索引变成列属性data
: a DataFrame object,要应用透视表的数据框values
: a column or a list of columns to aggregate,要聚合的列,相当于“值”index
: a column, Grouper, array which has the same length as data, or list of them. Keys to group by on the pivot table index. If an array is passed, it is being used as the same manner as column values,聚合值的分组,相当于“行”columns
: a column, Grouper, array which has the same length as data, or list of them. Keys to group by on the pivot table column. If an array is passed, it is being used as the same manner as column values,聚合值的分组,相当于是”列”aggfunc
: function to use for aggregation, defaulting to numpy.mean
,要应用的聚合函数,默认函数是均值关于pivot_table
函数结果的说明
df
是需要进行透视表的数据框values
是生成的透视表中的数据index
是透视表的层次化索引,多个属性使用列表的形式columns
是生成透视表的列属性