我在python中操作excel文件时遇到问题。 我有一个大的excel文件,其数据按日期/时间排列。 我希望能够在不同的日子里对一天中特定时间的数据进行平均分析;即。在1天内创建 gas_concentrations 的平均配置文件。
以下是我的Excel文件示例:
Decimal Day of year Decimal of day Gas concentration
133.6285 0.6285 46.51230
133.6493 0.6493 47.32553
133.6701 0.6701 49.88705
133.691 0.691 51.88382
133.7118 0.7118 49.524
133.7326 0.7326 50.37112
基本上我需要一个函数,比如excel中的AVERAGEIF函数,就像这样 “当 decimal_of_day = x时,平均 gas_concentrations 但是我真的不知道该怎么做。目前我已经有了这个目标
import xlrd
import numpy as np
book= xlrd.open_workbook('TEST.xlsx')
level_1=book.sheet_by_index(0)
time_1=level_1.col_values(0, start_rowx=1, end_rowx=1088)
dectime_1=level_1.col_values(8, start_rowx=1, end_rowx=1088)
ozone_1=level_1.col_values(2, start_rowx=1, end_rowx=1088)
ozone_1 = [float(i) if i != 'NA' else 'NaN' for i in ozone_1]
修改
我更新了我的脚本以包含以下内容
ozone=np.array(ozone_1, float)
time=np.array(dectime_1)
a=np.column_stack((ozone, time))
b=np.where((a[:,0]<0.0035))
print b
修改 目前我通过将两个变量放入一个数组,然后使用我需要平均的变量来制作一个较小的数组来解决这个问题 - 效率有点但它有效!
ozone=np.array(ozone_1, float)
time=np.array(dectime_1)
a=np.column_stack((ozone, time))
b=a[a[:,1]<0.0036]
c=np.nanmean(b[:,0])