Я хотел бы использовать pivot_table
, чтобы показать произвольное значение столбца в каждой ячейке. Например, с учетом DataFrame
, например:
df = pd.DataFrame({'x': ['x1', 'x1', 'x2'],
'y': ['a', 'b', 'c']})
Для подсчета значений y
для каждого значения x
:
df.pivot_table(index='x', values='y', aggfunc=len)
y
x
x1 2
x2 1
Так что вместо [2, 1]
я бы хотел получить ['a', 'c']
или ['b', 'c']
.
Я попробовал эти подходы, но все выдают ошибки ( ноутбук ):
df.pivot_table(index='x', values='y', aggfunc=sample)
df.pivot_table(index='x', values='y', aggfunc=head)
df.pivot_table(index='x', values='y', aggfunc=lambda x: x[0])
Per https://stackoverflow.com/a/38982172/1840471, альтернатива использует groupby
и agg
, и это дает желаемый результат в этом случае:
df.groupby(['x']).y.agg('head')
Однако я собираюсь использовать pivot_table
, потому что мой полный вариант использования включает получение значений в строках и столбцах.