请教怎么用Python的Pandas解决一个统计频率的问题
请教一下怎么用Python的Pandas生成DataFrame然后统计频率的问题:
假设,我感兴趣的个体是“学生”,每个学生都有自己的名字,也都有3种属性:性别、院系、恋爱了没有。要求找出所有单身学生的名字。
我能想到的办法,无非就是用一个字典来做整个信息的数据结构,key=名字,value=[性别,院系,恋爱],然后按部就班的循环。
dict_student = {“张”:[man, EE, 1], “王”:[man, CS, 1], “李”:[woman, Art, 0], “赵”:[woman, np.nan, 1]……}
list_love = []
for k, v in dict_student:
if v[2]==0:
list_love.append(k)
但是有没有办法可以用一句话直接.count()出来单身学生的个数呢?比如count(map(lambda k,v:v[2]
dict_student.items()))?
但是,信息不是一个简单的字典、而是一个csv文件(多数情况下的大数据也不会以一个字典的方式清晰存在)。所以要用Python的Pandas,那么又该怎么统计所有单身学生的名字呢?
~, 姓名, 性别, 院系, 恋爱
1, 张, man, EE, 1
2, 王, man, CS, 1
3, 李, woman, Art, 0
我能想到的办法,无非就是把“恋爱”这一列抓出来单独处理,
df = pd.read_csv("信息.csv", index_col=0,1,4) # 只需要第0、1、4列吗?
df.ix[:, df3.ix[4]>0] # 只需要第0、1、4列吗?
tuple_list = df.groupby('恋爱') # 然后应该怎么写,可以把df转化成刚才的那个dict_student吗?
谢谢了先!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个很简单啊,直接filter就好了: