import pandas as pd
def cal_ws():
pass
df = pd.read_csv('D:\\Data\\200 Stocks 1 minute Data\\data.csv')
ohlc_dict = {
'open':'first',
'high':'max',
'low':'min',
'close':'last',
'volume': cal_ws # 自定义函数无需引号
}
df = df.resample('3min').agg(ohlc_dict)
使用 GroupBy.agg 带回分配,因为不是就地操作:
df = df.resample('3min').agg(ohlc_dict)
# 对多列进行不同的聚合操作, 并修改相应的列名
df.groupBy("Job") \
.agg(f.sum("salary").alias("sum_salary"),
f.avg("salary").alias("avg_salary"),
f.min("salary").alias("min_salary"),
f.max("salary").alias("max_salary"),
f.mean("salary").alias("mean_salary")
) \
.show(truncate=False)
data_copy = pd.DataFrame(data[['水平', '竖直']])
data_copy_cal = data_copy.resample('10min', closed='right', label='right').apply(lambda x: pd.Series(
{'ws_mean': x['水平'].mean(), 'wd_mean': col_standard.paper_method(x['水平'], x['竖直'])}))
参考链接:
[1] python - resample() 得到了一个意外的关键字参数 ‘how’ ?
[2] pyspark编程实践(agg操作&自定义聚合函数) 2020.11;