Oli*_*r G 5 python nan mean pandas
我有一个数据集,我想从中创建几个平均值的多个变量.
我开始时:
data2['socialIdeology2'].mean()
data2['econIdeology'].mean()
Run Code Online (Sandbox Code Playgroud)
^完美的工作,并给我我正在寻找的平均值.
现在,我正在尝试进行条件均值,因此仅对数据集中的选择组进行均值.(我想要在2016年选举中投票选出的意识形态细分)在Stata中,代码类似于:mean(variable) if voteChoice == 'Clinton'
调查一下,我得出的结论是条件均值不是一个东西(虽然希望我错了?),所以我正在编写自己的函数.
这是我刚开始使用'均值'函数,为条件均值函数创建基础:
def mean():
sum = 0.0
count = 0
for index in range(0, len(data2['socialIdeology2'])):
sum = sum + (data2['socialIdeology2'][index])
print(data2['socialIdeology2'][index])
count = count + 1
return sum / count
print(mean())
Run Code Online (Sandbox Code Playgroud)
然而,我不断得到'nan'作为结果.打印data2['socialIdeology2'][index]
循环内打印nan
一遍又一遍.
所以我的问题是:如果存储在socialIdeology2
变量中的数据确实是一个nan
(我不明白它是怎么回事),为什么.mean()
函数可以使用呢?
我怎样才能按类别获得生成方式?
有条件的意思确实是熊猫的事情.你可以使用DataFrame.groupby()
:
means = data2.groupby('voteChoice').mean()
Run Code Online (Sandbox Code Playgroud)
或者,在您的情况下,以下将更有效:
means = data2.groupby('voteChoice')['socialIdeology2'].mean()
Run Code Online (Sandbox Code Playgroud)
深入了解你正在寻找的意思.(第一种情况将计算所有列的均值.)这假设这voteChoice
是您要条件的列的名称.