1. 透视表
1.1 场景说明
- 通常情况下使用groupby就能完成透视图的效果的, 但在一些需要操作多行多列的情况下, 使用透视表函数会更为直观。
1.2 参数详解
- data:dataframe格式数据
- values:需要汇总计算的列,可多选
- index:行分组键,一般是用于分组的列名或其他分组键,作为结果DataFrame的行索引
- columns:列分组键,一般是用于分组的列名或其他分组键,作为结果DataFrame的列索引
- aggfunc:聚合函数或函数列表,默认为平均值
- fill_value:设定缺失替换值
- margins:是否添加行列的总计
- dropna:默认为True,如果列的所有值都是NaN,将不作为计算列,False时,被保留
- margins_name:汇总行列的名称,默认为All
- observed:是否显示观测值
1.3 示例
参考示例
https://zhuanlan.zhihu.com/p/267208129
实际应用示例
pivot = pd.pivot_table(df,
index=dict_config["cabinet_temperature"][
"filter_col_station"][0],
values=legend,
aggfunc=np.max)
2. sort_values()排序
2.1 使用场景
- 可以指定列排序, 有时会指定多列, 且每列的规则排序规则不同(也可以是行, 如需自已排序可以利用apply函数自定义规则而不使用sort_values)(可选升序降序)
2.2 参数详解
- by 指定要进行排序的列名或索引值
- axis: 若 axis=0 或 ‘index’,则按照指定列的数据大小排序;若 axis=1 或 ‘columns’,则按照指定索引中数据大小排序。默认axis=0
- ascending:若 ascending=True,则按照升序排序;若 ascending=False,则按降序排序,默认为True,即升序排序。如果这是一个 bool 列表,则必须匹配 by 的长度
- kind: str = “quicksort”, 可选择稳定排序,根据实际情况选择
- na_position: str = “last”, 排序后na值得位置
- inplace: 排序后的数据是否替换原来的数据,默认为False,即不替换
- ignore_index 是否重置索引,默认为不重置
2.3 示例
参考示例
https://blog.csdn.net/BlueWhale52/article/details/119187311
实际应用示例
# 对多列排序 机柜升序,舱门升序, 截止日期降序
df = df.sort_values(by=dict_config[
"lock_store"]["filter_col_area"][4:7],
ascending=[True, True, False],
ignore_index=True)
3. to_datetime() 时间格式转换并筛选指定时间段得数据
3.1 使用场景
- 当需要根据时间筛选df对象是, 需要转化时间格式
3.2 参数详解
- pandas.to_datetime(param, format=“”)
3.3 示例
参考示例
https://www.delftstack.com/zh/howto/python-pandas/how-to-convert-dataframe-column-to-datetime-in-pandas/
实际应用示例
# 转化时间类型 并筛选
# 1. 转化时间格式
df[dict_config["lock_store"]["filter_col_area"][6]] = pd.to_datetime(
df[dict_config["lock_store"]["filter_col_area"][6]],
format="%Y-%m-%d %H:%M:%S")
tem_time = datetime.datetime.strptime(dict_config["lock_store"]["filter_condition_area"][2],
"%Y-%m-%d %H:%M:%S")
# 2. 统计周期最后一天的时间的最后五分钟 23:55:00
df = df[df[dict_config["lock_store"]["filter_col_area"][6]] >= tem_time]
4。 拓展 高级函数
- 函数里得一等公民 filter() , map(), 2.reduce() -
http://www.zzvips.com/article/214140.html
- 魔法函数
- http://www.zzvips.com/article/214140.html