Python 使用 pandas.pivot_table 每组进行第一次观察
Python Take first observation per group Using pandas.pivot_table
如何使用 pandas.pivot_table 在 aggfunc=[] 中指定一个函数,以便我得到每个组的第一个观察结果,就像我得到的结果 运行 groupby().first( )?
你可以使用 aggfunc='first':
In [11]: df = pd.DataFrame([[1, 2, "A"], [1, 4, "A"], [5, 6, "B"]])
In [12]: df
Out[12]:
0 1 2
0 1 2 A
1 1 4 A
2 5 6 B
In [13]: df.pivot_table(index=0, values=1, columns=2) # default aggfunc is 'mean'
Out[13]:
2 A B
0
1 3 NaN
5 NaN 6
In [14]: df.pivot_table(index=0, values=1, columns=2, aggfunc='first')
Out[14]:
2 A B
0
1 2 NaN
5 NaN 6
我不确定文档中是否有这些用于 aggfunctions 的字符串的完整列表(它们也适用于 groupbys),我会看一下...
如何使用 pandas.pivot_table 在 aggfunc=[] 中指定一个函数,以便我得到每个组的第一个观察结果,就像我得到的结果 运行 groupby().first( )?
你可以使用 aggfunc='first':
In [11]: df = pd.DataFrame([[1, 2, "A"], [1, 4, "A"], [5, 6, "B"]])
In [12]: df
Out[12]:
0 1 2
0 1 2 A
1 1 4 A
2 5 6 B
In [13]: df.pivot_table(index=0, values=1, columns=2) # default aggfunc is 'mean'
Out[13]:
2 A B
0
1 3 NaN
5 NaN 6
In [14]: df.pivot_table(index=0, values=1, columns=2, aggfunc='first')
Out[14]:
2 A B
0
1 2 NaN
5 NaN 6
我不确定文档中是否有这些用于 aggfunctions 的字符串的完整列表(它们也适用于 groupbys),我会看一下...