栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在数据框中查找每一行的前N列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在数据框中查找每一行的前N列

如果您只想配对:

from operator import itemgetter as itfrom itertools import repeatn = 3 # sort_values = order pandas < 0.17new_d = (zip(repeat(row["index"]), map(it(0),(row[1:].sort_values(ascending=0)[:n].iteritems())))      for _, row in df.iterrows())for row in new_d:    print(list(row))

输出:

[('B', 'option3'), ('B', 'option4'), ('B', 'option1')][('C', 'option2'), ('C', 'option5'), ('C', 'option1')][('D', 'option5'), ('D', 'option1'), ('D', 'option2')][('E', 'option1'), ('E', 'option2'), ('E', 'option3')][('F', 'option3'), ('F', 'option1'), ('F', 'option2')]

这也维持秩序。

如果要列表列表:

from operator import itemgetter as itfrom itertools import repeatn = 3new_d = [list(zip(repeat(row["index"]), map(it(0),(row[1:].sort_values(ascending=0)[:n].iteritems()))))      for _, row in df.iterrows()]

输出:

[[('A', 'option3'), ('A', 'option2'), ('A', 'option4')],[('B', 'option3'), ('B', 'option4'), ('B', 'option1')], [('C', 'option2'), ('C', 'option5'), ('C', 'option1')], [('D', 'option5'), ('D', 'option1'), ('D', 'option2')], [('E', 'option1'), ('E', 'option2'), ('E', 'option3')],[('F', 'option3'), ('F', 'option1'), ('F', 'option2')]]

或使用python排序:

new_d = [list(zip(repeat(row["index"]), map(it(0), sorted(row[1:].iteritems(), key=it(1) ,reverse=1)[:n])))          for _, row in df.iterrows()]

实际上这是最快的,如果您真的想要字符串,则可以随意格式化输出格式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号