[英]Increase limit of value when infinity is reached in Pandas
數據結構:
HEIGHT Category
51 1
45 1
89 2
目標:計算幾何平均值
import pandas as pd
import numpy as np
df = pd.read_csv('BaseFish',delimiter=',')
df.dropna(axis = 0)
df = df[df.HEIGHT != 0]
table = pd.pivot_table(df,values = 'HEIGHT',index = 'Category',aggfunc=(np.prod,np.count_nonzero))
table.insert(2,'GMEAN',0)
table['GMEAN']=table['prod']**(1/table['count_nonzero'])
問題:具有大量數據點的類別會產生np.prod =無窮大。 因此,最終的GMEAN也是無限的。
我的python知識非常基礎,並且我使用它的唯一原因是因為數據點數超過了excels限制。
此處無需使用數據透視表。 您可以按類別分組,然后計算每個類別的幾何平均值。
from scipy.stats import gmean
df.groupby('category').height.apply(gmean)
或不導入spicy.stats
:
gmean = lambda group: group.prod()**(1/len(group))
df.groupby('category').height.apply(gmean)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.