使用 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
的工作原理才能解决这个问题。
首先,它有三个不同的输入:
- 值 -> 发生聚合的值。在这种情况下,它是 SLA。
- Columns -> 要创建的新列。在这种情况下,它是 SLA 的值。
- 索引 -> 要保留的行。在这种情况下,它是优先级。
让我们把它转换成代码。
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
我正在尝试使用带有 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
的工作原理才能解决这个问题。
首先,它有三个不同的输入:
- 值 -> 发生聚合的值。在这种情况下,它是 SLA。
- Columns -> 要创建的新列。在这种情况下,它是 SLA 的值。
- 索引 -> 要保留的行。在这种情况下,它是优先级。
让我们把它转换成代码。
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