- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我注意到,当有多个 aggfunc 例如(“count”、“mean”、“sum”)时,我无法设置 margins=True。
它会抛出KeyError: 'Level None not found'
这是示例代码。
df.pivot_table(values=A,index=[B,C,D],columns=E,aggfunc=("count","mean","sum"),
margins=True,margins_name="Total",fill_value=0)
更新:
这是示例 df:
[{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 1, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 1, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 1, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'}]
代码抛出错误。
df.pivot_table(values="Results",index="Game_ID",
columns="Team",aggfunc=("count","mean","sum"),margins=True)
最佳答案
我看到你所说的错误。我通过使用函数调用而不是字符串名称“count”、“mean”和“sum”来解决这个问题。
首先,我们从您的数据框开始:
import pandas as pd
df=pd.DataFrame([{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 1, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'},
{'Game_ID': 'no.1', 'Results': 1, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 1, 'Team': 'A'},
{'Game_ID': 'no.1', 'Results': 0, 'Team': 'B'}])
然后只需将聚合函数替换为对 len
的标准库调用和 numpy 聚合函数即可。
数据透视表由以下几行组成:
import numpy as np
df.pivot_table(values="Results",
index="Game_ID",
columns="Team",
aggfunc=[len,np.mean,np.sum],
margins=True)
请注意,len
可能不是您想要的,但在本示例中,它给出的答案与“count”本身给出的答案相同。例如,看看 numpy.count_nonzero
。
关于python - Pandas hub_table 多个 aggfunc 带边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45895816/
df: id flag year amt 1 'Y' 2016 100 1 'Y' 2017 200 1 'Y' 2018 100 2 NaN 2016 100 2 'Y
当我尝试使用数据透视表对值进行分组时,我得到一个空数据框。让我们首先创建一些愚蠢的数据: import pandas as pd df = pd.DataFrame({"size":['large',
我有以下数据框: import pandas as pd import datetime df = pd.DataFrame({'T': [datetime.datetime.now(), datet
我有以下df code y_m date_1 date_2 10 201710 2017-10-01 2017-10-06 10 20
我有一组属性,值对如下: date,01-01-2018 product,eggs price, 5 date,01-10-2018 product,milk price,3 我想创建一个像这样的表
我需要一些帮助来弄清楚如何将 pandas 数据帧转换为具有给定索引和列列表的表(而不是 pandas 自动选择索引和列的默认行为)。如果这是微不足道的,我们深表歉意。我是 python/pandas
当我尝试过滤 Pandas 数据框时,如下面的示例所示,它工作正常: print data[data['ProductCategory'].isin(['ProductA'])] 但是当我尝试对生成的
我有一个包含日期、买入和卖出值的数据框,并在该数据框上执行pivot_table获取每个有效日期的所有买入/卖出值(value)。 data = [('20170325', 'Buy', 400 ),
我注意到,当有多个 aggfunc 例如(“count”、“mean”、“sum”)时,我无法设置 margins=True。 它会抛出KeyError: 'Level None not found'
我正在尝试使用以下代码在一张图中创建两个条形图: import matplotlib.pyplot as plt import pandas as pd df = read_csv(...) temp
cat1 cat2 col_a col_b 0 (34.0, 38.0] (15.9, 47.0
我正在使用这种形式的多值数据透视表: pivot = df.pivot_table(index=[indices], columns=['column'], values=['start_value'
我是一名优秀的程序员,十分优秀!