Loading... ## 数据下载 <button class=" btn m-b-xs btn-info btn-rounded " onclick="window.open('http://blog.a152.top/usr/uploads/2021/10/208150126.xlsx','_blank')">表格文件</button> <button class=" btn m-b-xs btn-dark btn-rounded " onclick="window.open('http://blog.a152.top/usr/uploads/2021/10/4031224240.ipynb','_blank')">ipynb下载</button> <button class=" btn m-b-xs btn-success btn-rounded " onclick="window.open('http://blog.a152.top/usr/uploads/2021/10/3182390816.html','_blank')">在线预览ipynb</button> 监控采集的光伏发电数据,晚上数据都是0,白天根据天气情况。想要获得几个操作: 1.每天白天的平均值,也就是每天从第一个非零数据到最后一个非零数据之间的平均值; 2.每天第一个和最后一个非零数据的时间,也就是获得第一个和最后一个非零数据所在行,发电开始和结束时间; 3.每天第一个和最后一个非零数据时间差,也就是发电时长 ```python import pandas as pd ``` ## 读取数据 设置索引 去除时间列 ```python df = pd.read_excel('2021(1).xlsx') df.index=df['dt'] df=df.drop('dt',axis=1) ``` 对应的是第一个问题,第二个问题,第三个问题 ```python def first(x): return x[x[x!=0].first_valid_index():x[x!=0].last_valid_index()].mean() def seconed(x): return x[x!=0].first_valid_index(),x[x!=0].last_valid_index() def third(x): return x[x!=0].last_valid_index()-x[x!=0].first_valid_index() ``` ```python df1=df.groupby(pd.Grouper(freq='D')).apply(first) df2=df.groupby(pd.Grouper(freq='D')).apply(seconed) df3=df.groupby(pd.Grouper(freq='D')).apply(third) ``` ## 拼接操作 ```python df_l=pd.concat([df1,df2,df3],axis=1) ``` Last modification:February 5, 2022 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 如果觉得我的内容对你有用,请随意赞赏