如何基于DataFrame列值生成满足评分数量条件的中位数评分数组?
解决方案
完全可行,针对你的DataFrame结构,可以通过以下步骤实现需求:
- 提取存储评分数量的行,筛选出数量超过阈值的列
- 提取这些列对应的中位数评分,转为目标数组
代码示例
假设你的DataFrame命名为df,阈值设为60:
# 取第一行(评分数量行),筛选出数量>60的列名 selected_columns = df.iloc[0][df.iloc[0] > 60].index # 提取对应列的第二行(中位数评分),转为数组 result = df.loc[:, selected_columns].iloc[1].values
针对示例数据的运行结果
代入你给出的DataFrame,运行后result会得到array([4., 3.]),也就是你需要的[4,3]。
优化写法(如果行有自定义索引)
如果你的DataFrame行有明确索引名(比如第一行索引是'评分数量',第二行是'中位数评分'),可以用索引名代替位置索引,可读性更强:
selected_columns = df.loc['评分数量'][df.loc['评分数量'] > 60].index result = df.loc['中位数评分', selected_columns].values
内容的提问来源于stack exchange,提问作者ra9xx
相关产品推荐
相关产品推荐

