熊猫的布尔值“平均值”

时间:2019-11-27 14:15:16

标签: python pandas

我真的很困惑,为什么只显示False而不是0.8,因为第3列(Value3)有4个true和1个false。我读到它应该可以用平均值表示,但我无法解决

也许有人可以给我一点提示我做错了什么?

data = [
    {
    "Datum": "2019-05-11",
    "Value1": True,
    "Value2": 10,
    "Value3": False,
    "Value4": 20
    },
    {
    "Datum": "2019-05-11",
    "Value1": True,
    "Value2": 20,
    "Value3": True,
    "Value4": 40
    },  
    {
    "Datum": "2019-05-11",
    "Value1": True,
    "Value2": 20,
    "Value3": True,
    "Value4": 40
    },     
    {
    "Datum": "2019-05-11",
    "Value1": True,
    "Value2": 10,
    "Value3": True,
    "Value4": 20
    },
    {
    "Datum": "2019-05-11",
    "Value1": True,
    "Value2": 20,
    "Value3": True,
    "Value4": 40
    },      
    {
    "Datum": "2019-05-12",
    "Value1": True,
    "Value2": 30,
    "Value3": True,
    "Value4": 50
    },
    {
    "Datum": "2019-05-12",
    "Value1": True,
    "Value2": 40,
    "Value3": True,
    "Value4": 60
    }
] 
df = pd.DataFrame(data)
ordered_df = df.groupby("Datum").agg("mean")

结果是:

ordered_df["Value3"]
Datum
2019-05-11    False
Name: Value3, dtype: bool

我希望这样:

Datum
2019-05-11    0.8
2019-05-12    1.0
Name: Value3, dtype: float64

编辑编辑编辑 有人可以尝试使用此数据吗?

比起我做DataFrame和groupby的东西...仍然不意味着布尔值

input_data = data["data"]
df = pd.DataFrame(input_data)
ordered_df = df.groupby("Datum").agg("mean")
ordered_df["Notabschaltung"]

还是一样

Datum
2019-11-12    False
Name: Notabschaltung, dtype: bool

1 个答案:

答案 0 :(得分:1)

使用第二个示例,我确实得到了错误。

要解决此问题,您可以使用:

Pjax::end()

会将True转换为1,将False转换为0,然后

SELECT DISTINCT section FROM modules WHERE area='First' ORDER BY lvl ASC
SELECT section FROM modules WHERE area='First' GROUP BY section ORDER BY lvl ASC
  

基准

     

2019-11-12 0.0

     

名称:Notabschaltung,dtype:int64