我有一些simple data的形式
>>> gerber.head()
sex yob voting hawthorne civicduty neighbors self control
0 0 1941 0 0 1 0 0 0
1 1 1947 0 0 1 0 0 0
2 1 1982 1 1 0 0 0 0
3 1 1950 1 1 0 0 0 0
4 0 1951 1 1 0 0 0 0
并希望找到投票者比例最高的类别(即布尔值列)(即类别中voting == 1
的比例最高)。我可以和你一起做
gerber.groupby('voting').sum().apply(lambda x: x/x.sum()).iloc[1]
生成一个简单的表
sex 0.309893
yob 0.315449
hawthorne 0.322375
civicduty 0.314538
neighbors 0.377948
self 0.345151
control 0.296638
Name: 1, dtype: float64
我可以检查给我想要的。这就是我要查找的数据,但必须有(a)更好的方法使用Python和Pandas来表示,以及(b)只返回类别名称的方法(这里是“邻居”)。你知道吗
如何使用Pandas在Python中简洁地表达这一点?你知道吗
我想你可以用“平均”来更直接地做到这一点。另外,我认为,与其对每个组进行groupby,然后提取一行,不如使用get\u group得到投票=1的子组,并进行平均值:
或者直接找邻居:
要获得最大的类别,请使用idxmax:
我不知道如何思考你在
yob
专栏的问题。听起来您想:查看voting==1
所在的行,然后仅在这些数据中,计算其他列中1
的分数(不包括voting
本身和yob
)。然后您需要标识分数最高的列。你知道吗我认为这是可行的:
相关问题 更多 >
编程相关推荐