Неожиданный результат в пандах pivot_table - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь сделать сводную таблицу на панде Dataframe. Я почти получаю ожидаемый результат, но, похоже, он умножается на два. Я мог бы просто разделить на два и назвать это днем, однако я хочу знать, делаю ли я что-то не так.

Вот код:

import pandas as pd
import numpy as np

df = pd.DataFrame(data={"IND":[1,2,3,4,5,1,5,5],"DATA":[2,3,4,2,10,4,3,3]})
df_pvt = pd.pivot_table(df, aggfunc=np.size, index=["IND"], columns="DATA")

df_pvt сейчас:

DATA   2    3    4    10
IND                     
1     2.0  NaN  2.0  NaN
2     NaN  2.0  NaN  NaN
3     NaN  NaN  2.0  NaN
4     2.0  NaN  NaN  NaN
5     NaN  4.0  NaN  2.0

Однако вместо 2.0 это должно быть 1.0! Что я неправильно понимаю / делаю неправильно?

1 Ответ

0 голосов
/ 06 июля 2018

Вместо этого используйте строку 'size'. Это приведет к интерпретации пандой «размера», то есть количества элементов в группе. Интерпретация размера NumPy - это произведение длин каждого измерения.

df = pd.pivot_table(df, aggfunc='size', index=["IND"], columns="DATA")

print(df)

DATA   2    3    4    10
IND                     
1     1.0  NaN  1.0  NaN
2     NaN  1.0  NaN  NaN
3     NaN  NaN  1.0  NaN
4     1.0  NaN  NaN  NaN
5     NaN  2.0  NaN  1.0
...