函数,当通过一行中的正值时,返回列名,否则返回字符串 "Not Available"。

我需要一些帮助。我希望下面的内容有意义。

想象一个有X行和100列的数据框架。

我想让我的函数按照降序排列给定行中的所有值,然后从这些排列好的值中,给我前10列的列名。

到这里,下面的功能对我来说就是这样的。

def return_most_common_venues(row, 10):
    row_categories = row.iloc[1:]
    row_categories_sorted = row_categories.sort_values(ascending=False)

    return row_categories_sorted.index.values[0:10]

另外…

我遇到的问题是当行的正值少于10时。也就是说,剩下的都是0。

从这前10个排列的值来看,比如位置9和10是0。我希望它不是给我这些零值的列名,而是返回一个字符串 “Not Available”。

我如何修改上面的函数来返回我所需要的内容。

谢谢你的帮助

解决方案:

你可以在列表中替换它们

row_cat = row_categories_sorted.index.values[0:10]
replaced_row_cat = ['Not Available' if not c else c for c in row_cat]
return replaced_row_cat

或者干脆。

new_cat=[]
for cat in row_categories_sorted.index.values[0:10]:
    if cat == 0:
        new_cat.append("Not available")
    else:
        new_cat.append(c)
return new_cat

给TA打赏
共{{data.count}}人
人已打赏
未分类

在线存储JSON文件的最简单方法?

2022-9-8 15:57:20

未分类

将相同的数据分组到一个单一的字典中,同时进行刮擦。

2022-9-8 15:57:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索