日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

数据科学与python语言——Pandas统计分析基础(时间转换+聚合)

發布時間:2023/12/4 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据科学与python语言——Pandas统计分析基础(时间转换+聚合) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Pandas統計分析基礎(時間轉換+聚合)

  • 實驗要求一
  • 實驗二要求
  • 全部代碼

實驗要求一

#M表的時間戳類型轉為datetime data_Mete['TIMESTAMP']=pd.to_datetime(data_Mete['TIMESTAMP'],format='%Y%m%d%H%M%S')

data_VI['Date']=pd.to_datetime(data_VI['Date'],format='%Y/%m/%d') print(data_VI['Date'])

#M表添加一個Date列 只包含年月日 data_Mete['Date']=[i.date() for i in data_Mete['TIMESTAMP']] #根據Date分組 聚合到日 data_Mete_group=data_Mete.groupby(by='Date',as_index=False) #對于每一個分組各列的多個值應用不同的方法 data1=data_Mete_group.agg({'TA':[np.max,np.min,np.mean],'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':calpercent}) print(data1)

import numpy as np import pandas as pd from matplotlib import pyplot as pltdef calpercent(data):#計算0和1占比cnt01=sum(data==0)+sum(data==1)return cnt01/data.size data_Mete=pd.read_csv('./data/Mete_FR-Gri.csv') data_VI=pd.read_csv('./data/VI_FR-Gri.csv')#M表的時間戳類型轉為datetime data_Mete['TIMESTAMP']=pd.to_datetime(data_Mete['TIMESTAMP'],format='%Y%m%d%H%M%S') print(data_Mete['TIMESTAMP']) data_VI['Date']=pd.to_datetime(data_VI['Date'],format='%Y/%m/%d') print(data_VI['Date'])#M表添加一個Date列 只包含年月日 data_Mete['Date']=[i.date() for i in data_Mete['TIMESTAMP']] #根據Date分組 聚合到日 data_Mete_group=data_Mete.groupby(by='Date',as_index=False)#對于每一個分組各列的多個值應用不同的方法 data1=data_Mete_group.agg({'TA':[np.max,np.min,np.mean],'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':calpercent}) print(data1) #重置列名 data1.columns=['Date','TA_Max', 'TA_Min', 'TA_Mean', 'P', 'RG', 'GPP', 'GPP_QC']data1['Date']=pd.to_datetime(data1['Date']) print(data1['Date']) mergedata=pd.merge(data1,data_VI,on='Date')#兩個表按照日期列合并mergedata.to_csv('./1test5_1.csv') print('合并表格完成')

實驗二要求

全部代碼

import numpy as np import pandas as pd from matplotlib import pyplot as pltdef calpercent(data):#計算0和1占比cnt01=sum(data==0)+sum(data==1)return cnt01/data.size data_Mete=pd.read_csv('./data/Mete_FR-Gri.csv') data_VI=pd.read_csv('./data/VI_FR-Gri.csv')#M表的時間戳類型轉為datetime data_Mete['TIMESTAMP']=pd.to_datetime(data_Mete['TIMESTAMP'],format='%Y%m%d%H%M%S') print(data_Mete['TIMESTAMP']) data_VI['Date']=pd.to_datetime(data_VI['Date'],format='%Y/%m/%d') print(data_VI['Date'])#M表添加一個Date列 只包含年月日 data_Mete['Date']=[i.date() for i in data_Mete['TIMESTAMP']] #根據Date分組 聚合到日 data_Mete_group=data_Mete.groupby(by='Date',as_index=False) #對于每一個分組各列的多個值應用不同的方法 data1=data_Mete_group.agg({'TA':[np.max,np.min,np.mean],'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':calpercent}) print(data1) #重置列名 data1.columns=['Date','TA_Max', 'TA_Min', 'TA_Mean', 'P', 'RG', 'GPP', 'GPP_QC']data1['Date']=pd.to_datetime(data1['Date']) print(data1['Date']) mergedata=pd.merge(data1,data_VI,on='Date')#兩個表按照日期列合并mergedata.to_csv('./1test5_1.csv') print('合并表格完成')def fixGppQc(data):#將GppQC值大于0.5的天數不足15天的月份的GppQC標為2 if sum(data>=0.5)<15:return 2else:return 1 #在(1)的基礎上進行 data0=mergedata #提取年月并將日均置為1 添加到新的一列 data0['newdate']=data0['Date'].map(lambda x: 10000*x.year + 100*x.month+1) #TA_Range--氣溫日較差 data0['TA_Range']=data0['TA_Max']-data0['TA_Min'] #根據年月分組(日均為1) data0group=data0.groupby(by='newdate',as_index=False) data2=data0group.agg({'TA_Range':np.mean,'TA_Mean':np.mean,'P':np.sum,'RG':np.mean,'GPP':np.mean,'GPP_QC':fixGppQc,'EVI':np.mean,'NDVI':np.mean}) #將無效的GPP置為空值 data2.loc[data2['GPP_QC']==2,'GPP']=np.NaN #修改列名 data2=data2.rename(columns={'newdate':'Date'}) data2['Date']=pd.to_datetime(data2['Date'],format='%Y%m%d') # data2data3=data2.dropna()#剔除空值 # data3 # 支持中文 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來正常顯示中文標簽 plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負號plt.figure(figsize=(8,7.2))print('畫出各個因素與光合作用的相關性柱狀圖') cols=['TA_Mean','TA_Range','RG','P','NDVI'] corrs=[data3['GPP'].corr(data3[i]) for i in cols]#計算GPP與五列數據間的相關系數 index=np.arange(len(cols))for col,corr in zip(cols,corrs):#畫出每個列與GPP相關系數的柱狀圖plt.bar(col,corr)plt.ylabel('與GPP的相關系數',fontsize=12) plt.xlabel('與GPP的相關因素',fontsize=12) plt.legend(['平均氣溫','氣溫日較差','太陽輻射','降水','NDVI'],loc=2) plt.savefig('./test5_2.jpg') plt.show()input('按回車結束')

總結

以上是生活随笔為你收集整理的数据科学与python语言——Pandas统计分析基础(时间转换+聚合)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。