【问题标题】:Pass multiple index parameters (from a list) to Pandas pivot_table将多个索引参数(来自列表)传递给 Pandas pivot_table
【发布时间】:2021-12-02 13:34:32
【问题描述】:

我有一个参数列表,我想在 pandas.pivot_table 中用作参数:

rows = ["1", "2", r'"3","4"']

for i in rows:
   table = pd.pivot_table(df.fillna(0),index=[i], values=["X", "Y"], aggfunc=[np.sum], fill_value=0, margins="True", margins_name="Tot.")

但如果我启动代码,一切都会顺利,直到列表的第三个元素。

KeyError: "'3','4'"

如果我手动启动它

table = pd.pivot_table(df.fillna(0),index=["3","4"], values=["X", "Y"], aggfunc=[np.sum], fill_value=0, margins="True", margins_name="Tot.")

它有效。

如何将第三个元素格式传递给函数而不会出错?

我尝试过以其他方式编写多元素,但没有成功:

rows = ["1", "2", ["3","4"]]

谢谢。

【问题讨论】:

  • print (df.index.tolist()) 是什么?
  • @jezrael:一长串数字,df的索引

标签: python pandas pivot-table


【解决方案1】:

小学生错误。

table = pd.pivot_table(df.fillna(0),index=[i], values=["X", "Y"], aggfunc=[np.sum], fill_value=0, margins="True", margins_name="Tot.")

期望单个值 i 作为列表的元素 ([i]) 传递。

所以正确的做法是这样的:

rows = ["1", "2", ["3","4"]]

for i in rows:
   table = pd.pivot_table(df.fillna(0),index=i, values=["X", "Y"], aggfunc=[np.sum], fill_value=0, margins="True", margins_name="Tot.")

【讨论】:

    猜你喜欢
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多