“ DatasetGroupBy”对象不可下标

时间:2019-04-16 06:55:27

标签: python-3.x dask python-xarray

我有多个netCDF4数据集,其中包含全年的每月天气数据。在xarray中使用groupby方法提取每月数据后,我无法从该分组结果中获取诸如均值,std之类的统计信息。在执行基本算术运算时会出错。

我通过以下方式对每月数据进行了分组:

$llid = htmlspecialchars($_SESSION["id"]);
$sql = "SELECT name, address, pic1 from properties 
INNER JOIN
(select SUM(revenue) as revenue, count(id) from transactions)
where properties.ll_id = " .$llid. "";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

    // output data of each row
    while($row = $result->fetch_assoc()) {
    ?>
        <tr>
         <td><?php echo $row["name"];?></td>
         <td><?php echo $row["address"];?></td>
         <td> <img src="p3/img/<?php echo $row["pic1"];?>" width="80"> </td>
         <td><?php echo $row["id"];?></td>
         <td>$<?php echo $row["revenue"];?></td>
         <td> <span>VIEW</span> </td>
        </tr>
<?php

    }

} else {
    echo "No Updates";
}
$conn->close();
?>

此后,当我要获取温度值时,它显示错误:

monthTime = ds.groupby('time.month')
monthTime['temp']

在计算monthTime变量的平均值时,我得到以下结果:

TypeError: 'DatasetGroupBy' object is not subscriptable
monthTime.mean()

如何计算平均值和标准偏差。请告诉我我哪里错了。

1 个答案:

答案 0 :(得分:0)

Group-by用作Split-Apply-Combine。您可以在熊猫doc上阅读更多有关它的详细示例。

当您按月对数据进行分组时,索引将无法工作,因为您必须首先应用一些函数(例如均值等)并将其重新组合为数据结构。但是,如果要查看分组的对象,可以将其转换为列表

list(monthTime)

在您的情况下,您将获得变量temp的均值。 Monthtime不是您的数据结构的变量。我认为,为了进行分析,您需要变量temp的均值或标准差。因此,方法是:

ds.temp.groupby('time.month').mean()
# similarly you can apply any other functions