找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4591|回复: 2

求助一个关于pandas.DataFrame排序相关的问题

1

主题

2

帖子

11

积分

贫民

积分
11
pyk918 发表于 2016-6-22 09:56:09 | 显示全部楼层 |阅读模式
各位大大好,我现在有一个全是浮点数的dataframe,我想保留每列最大的十个数值,其他的数值全部赋为0,有方法能办到么
回复

使用道具 举报

0

主题

3

帖子

12

积分

贫民

积分
12
hust_tiger 发表于 2016-6-22 22:04:39 | 显示全部楼层
import numpy as np
import pandas as pd
from pandas import DataFrame,Series

ser=np.random.randn(200)
frame=DataFrame(ser.reshape(20,10))
new=frame.copy()
#计算行数
row=len(frame.index)
#计算列数
col=len((frame.T).index)

for i in xrange(0,col):
    #找到第10大的数
    temp=frame[i].order().values
    num_ten=temp[10]
    for j in xrange(0,row):
        if frame[i][j]<num_ten:
            new[i][j]=0.0        
回复 支持 反对

使用道具 举报

1

主题

2

帖子

11

积分

贫民

积分
11
pyk918  楼主| 发表于 2016-6-24 15:15:52 | 显示全部楼层
hust_tiger 发表于 2016-6-22 22:04
import numpy as np
import pandas as pd
from pandas import DataFrame,Series

谢谢,我找到一个更简单的方法,用rank进行排序,得到每一列的排序顺序,然后判断序数大于10的位置全部赋0
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表