csv PythonPandas每日获取:数据集的MIN MAX AVG结果

brvekthn  于 2022-12-15  发布在  Python
关注(0)|答案(2)|浏览(135)

使用Python和panda将数据从数据库导出到csv。导出时的数据如下所示。每天大约有100个日志,所以这纯粹是为了可视化:
| 时间|缓冲液1| Buf2|
| - ------|- ------|- ------|
| 2022年12月12日19时15分56秒|十二个|三个|
| 2022年12月12日18时00分30秒|五个|十八|
| 2022年11月12日15时15分08秒|十二|三个|
| 2022年11月12日15时15分08秒|十个|九|
现在我只显示“原始”数据到一个csv,但我需要为每一天生成一个最小值,最大值和平均值。什么是最好的方式来创建呢?我一直在尝试做一些最小()最大值()函数,但这里的问题是,我有很多天在这些csv文件。也试图manupilate数据在python它自己,但有点担心,我'We“我们会漏掉一些,数据将不再正确。
我想用这样的话来结尾:
| 时间|缓冲液1_最大值|缓冲区_最小值|
| - ------|- ------|- ------|
| 2022年12月12日|十二|三个|
| 2022年12月12日|十二|十个|

nx7onnlm

nx7onnlm1#

给你,一步一步来。

In [27]: df['time'] = df['time'].astype("datetime64").dt.date

In [28]: df
Out[28]:
         time  Buf1  Buf2
0  2022-12-12    12     3
1  2022-12-12     5    18
2  2022-11-12    12     3
3  2022-11-12    10     9

In [29]: df = df.set_index("time")

In [30]: df
Out[30]:
            Buf1  Buf2
time
2022-12-12    12     3
2022-12-12     5    18
2022-11-12    12     3
2022-11-12    10     9

In [31]: df.groupby(df.index).agg(['min', 'max', 'mean'])
Out[31]:
           Buf1           Buf2
            min max  mean  min max  mean
time
2022-11-12   10  12  11.0    3   9   6.0
2022-12-12    5  12   8.5    3  18  10.5
5t7ly7z5

5t7ly7z52#

另一种方法是使用pivot_table来简化数据分组(请记住,按照建议将“time”列转换为datetime64

import pandas as pd
import numpy as np

df.pivot_table(
    index='time', 
    values=['Buf1', 'Buf2'], 
    aggfunc={'Buf1':[min, max, np.mean], 'Buf2':[min, max, np.mean]}
)

您可以根据需要添加任何aggfunc。

相关问题