如何将表从行转置为标题

时间:2019-08-21 13:59:56

标签: pandas dataframe

我正在使用periscopedata进行计算,我想将某些表转置到所需的输出。

即)

#healthy host alarm
resource "aws_cloudwatch_metric_alarm" "health" {
  alarm_name          = "${var.tag_app}_healthy_host"
  comparison_operator = "LessThanThreshold"
  evaluation_periods  = "1"
  metric_name         = "HealthyHostCount"
  namespace           = "AWS/ApplicationELB"
  period              = "60"
  statistic           = "Maximum"
  threshold           = "1"
  alarm_description   = "Healthy host count for EC2 machine"
  alarm_actions       = ["${data.aws_sns_topic.blabla.arn}"]
  ok_actions          = ["${data.aws_sns_topic.blabla.arn}"]

  dimensions = {
    TargetGroup  = "${aws_lb_target_group.alb_target.arn_suffix}"
  }
}

我希望结果看起来像这样

F.name      Date       Result
gross_sale  2015/01/01 450
gross_sale  2015/01/02 554
gross_sale  2015/01/03 439
sale_disc   2015/01/01 31
sale_dsic   2015/01/03 22

periscopedata支持pandas Dataframes,我在下面尝试过,但这会引发错误。

F.name     2015/01/01 2015/01/02 2015/01/03
gross_sale 450        554        439
sale_disc  31         0          22

指导我如何调整python代码,以便获得所需的正确结果。

1 个答案:

答案 0 :(得分:0)

df = pd.DataFrame({"F.name": ["gross_sale", "gross_sale", "gross_sale", "sale_disc", "sale_disc"],
                  "Date": ["2015/01/01", "2015/01/02", "2015/01/03", "2015/01/01", "2015/01/03"],
                  "Result": [450, 554, 439, 31, 22]})

df.pivot(index='F.name', columns='Date', values='Result').fillna(0)