【发布时间】:2016-03-21 17:18:55
【问题描述】:
给定一个包含一个描述性列和 X 个数值列的数据框,对于每一行,我想识别具有较高值的前 N 列并将其保存为新数据框上的行。
例如,考虑以下数据框:
df = pd.DataFrame()
df['index'] = ['A', 'B', 'C', 'D','E', 'F']
df['option1'] = [1,5,3,7,9,3]
df['option2'] = [8,4,5,6,9,2]
df['option3'] = [9,9,1,3,9,5]
df['option4'] = [3,8,3,5,7,0]
df['option5'] = [2,3,4,9,4,2]
我想输出(假设 N 是 3,所以我想要前 3 个):
A,option3
A,option2
A,option4
B,option3
B,option4
B,option1
C,option2
C,option5
C,option4 (or option1 - ties arent really a problem)
D,option5
D,option1
D,option2
and so on....
知道如何轻松实现吗? 谢谢
【问题讨论】:
-
你想要什么样的格式?
-
由于 OP 从未回复,让我们合理假设他们想要一个数据框,而不是列表列表或其他任何东西。
-
重命名,因为 OP 显然想要 "Finding top N columns" 而不是 "Selecting top N columns...",这将是带有 df 输出的 pandas 操作。
标签: python python-2.7 pandas dataframe top-n