使用 python 在 excel 中添加枢轴 table

Add pivot table in excel with python

我正在尝试使用带有 pandas 的 python 脚本在 excel 中添加一个枢轴 table,但无法这样做。 我不会计算每个优先级的错过和满足条目的数量。

Excel 脚本:

import pandas as pd
df = pd.DataFrame({'Priority': ['p1','p2','p3','p2','p3'],'SLA': ['Met','Missed','Missed','Met','Missed']})

Excel数据:

Priority SLA
p1 Met
p2 Missed
p3 Missed
p2 Missed
p3 Missed

期望的输出:

Priority Met Missed
p1 1 0
p2 1 1
p3 0 2

我尝试了不同的 combination\approach 和

table = pd.pivot_table(df,index='Priority',columns=['SLA'])

但没弄对。我正在为此努力奋斗。我是第一次尝试。

我们需要了解 pandas.DataFrame.pivot_table 的工作原理才能解决这个问题。

首先,它有三个不同的输入:

  1. 值 -> 发生聚合的值。在这种情况下,它是 SLA。
  2. Columns -> 要创建的新列。在这种情况下,它是 SLA 的值。
  3. 索引 -> 要保留的行。在这种情况下,它是优先级。

让我们把它转换成代码。

df.pivot_table(
  # SLA's values as the columns
  columns=df['SLA'].values, 

  # Priority as the rows.
  index=['Priority'], 

  # SLA's values as the values to be aggregated upon (counted).
  values=['SLA'], 

  # Count is our aggregate function
  aggfunc='count'
).fillna(0).astype('int') # Then we fill NaN values with 0, and convert the df -> int