python - 尝试在 Python 中使用 Pandas 复制 SUMIFS

标签 python excel pandas dataframe sumifs

我有一个基本上是这样的数据框:
Location Team  Asset  P01  P02  P03  P04 ... 
England
我想要这样的输出
enter image description here
它延伸到最后一个时期。
有人确定如何使用 python/pandas 做到这一点吗?
谢谢!

最佳答案

你可以设置你的index成为“位置”和“ Assets ”并使用 stack在所有 Period 列上,这将为您提供所需的结构。
然后是 groupby.sum() 的问题:

df_reshaped = df.set_index(['Asset','Location'])\
    .stack().reset_index()\
        .sort_values(by=['Asset','level_2'])\
            .rename(columns={'level_2':'Period',0:'Cost'})

df_reshaped.groupby(['Asset','Location','Period'],as_index=False).sum()
打印:
   Asset Location Period  Cost
0      A     Scot    P01   163
1      A     Scot    P02   131
2      A     Scot    P03   114
3      A     Scot    P04   176
4      B      Eng    P01   134
5      B      Eng    P02    74
6      B      Eng    P03   112
7      B      Eng    P04    33
8      C      Eng    P01    85
9      C      Eng    P02    90
10     C      Eng    P03    19
11     C      Eng    P04    68
12     C     Scot    P01    51
13     C     Scot    P02    95
14     C     Scot    P03    79
15     C     Scot    P04    62

关于python - 尝试在 Python 中使用 Pandas 复制 SUMIFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72742749/

相关文章:

Python3 : Writing data of bytes in a file

c# - 我们如何从 C# 设置 Excel 图表的位置?

python - 根据对象类型的列对 python pandas 数据框进行排序

python - Pandas 数据框将数组条目分成两列

整行中的pandas数据框搜索字符串

python - 扩展 Python 和 Objective-C

python - 获取 numpy.ndarray 的索引

python - 如何在 Python 中从 z、p、k 中找到增益 g

vba - 将变量传递给 Left(string, VariableHere) 不起作用

sql-server - SSIS 包从多个 Excel 文件中提取数据 - 在 'Expression Properties' 上出现错误