【发布时间】:2018-08-02 05:14:08
【问题描述】:
我正在尝试创建一个使用df.iterrows() 和Series.nlargest 的函数。我想遍历每一行并找到最大的数字,然后将其标记为1。这是数据框:
A B C
9 6 5
3 7 2
这是我想要的输出:
A B C
1 0 0
0 1 0
这是我希望在这里使用的功能:
def get_top_n(df, top_n):
"""
Parameters
----------
df : DataFrame
top_n : int
The top number to get
Returns
-------
top_numbers : DataFrame
Returns the top number marked with a 1
"""
# Implement Function
for row in df.iterrows():
top_numbers = row.nlargest(top_n).sum()
return top_numbers
我收到以下错误: AttributeError: 'tuple' 对象没有属性 'nlargest'
对于如何以更简洁的方式重新编写我的函数并实际工作的帮助,我们将不胜感激!提前致谢
【问题讨论】:
标签: python pandas dataframe iterator