小编tfc*_*coe的帖子

如何在巨大数据帧的每一行中查找top-n值的列索引

我有一个格式的数据框:(示例数据)

      Metric1  Metric2  Metric3  Metric4  Metric5
ID    
1     0.5      0.3      0.2      0.8      0.7    
2     0.1      0.8      0.5      0.2      0.4    
3     0.3      0.1      0.7      0.4      0.2    
4     0.9      0.4      0.8      0.5      0.2    
Run Code Online (Sandbox Code Playgroud)

其中得分范围在[0,1]和我希望生成一个函数,对于每个id(行),计算前n个度量,其中n是函数的输入以及原始数据帧.

我的理想输出是:(例如,n = 3)

      Top_1     Top_2     Top_3
ID    
1     Metric4   Metric5   Metric1    
2     Metric2   Metric3   Metric5    
3     Metric3   Metric4   Metric1    
4     Metric1   Metric3   Metric4  
Run Code Online (Sandbox Code Playgroud)

现在我编写了一个可行的函数:

def top_n_partners(scores,top_n=3):
metrics = np.array(scores.columns)
records=[]
for rec in scores.to_records():
    rec = list(rec)
    ID = rec[0]
    score_vals = rec[1:]
    inds = np.argsort(score_vals)
    top_metrics = …
Run Code Online (Sandbox Code Playgroud)

python sorting rank top-n pandas

8
推荐指数
1
解决办法
1511
查看次数

用相同的值替换 Sprintf 中的多个变量

我希望将定义的变量插入到 R 中的字符串中,其中变量将插入多个位置。

我已经看到sprintf可能有用。

所需输入的示例:

a <- "tree"
b <- sprintf("The %s is large but %s is small. %s", a) 
Run Code Online (Sandbox Code Playgroud)

理想的输出将返回

"The tree is large but tree is small. tree"
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用这样的功能:

b <- sprintf("The %s is large but %s is small. %s",a,a,a)
Run Code Online (Sandbox Code Playgroud)

但是,对于我的实际工作,我需要插入 10 次以上,因此我正在寻找更清洁/更简单的解决方案。

gsub 会是更好的解决方案吗?

我的确切问题已在此处得到解答,但它是针对 Go 语言的:

用相同的变量替换 Sprintf 中的所有变量

string format r

5
推荐指数
2
解决办法
2714
查看次数

将元组列表转换为dataframe - 其中元组的第一个元素是列名

我有一个格式列表:

tuples = [('a',1,10,15),('b',11,0,3),('c',7,19,2)]  # etc.
Run Code Online (Sandbox Code Playgroud)

我希望以DataFrame下列格式存储数据:

      a       b     c      ...  

0     1       11     7     ...   
1     10      0      19    ...  
2     15      3      2     ...   
Run Code Online (Sandbox Code Playgroud)

元组的第一个元素是我希望的列名.

我明白,如果我能通过运行实现我想要的东西:

df = pd.DataFrame(tuples)
df = df.T
df.columns = df.iloc[0]
df = df[1:]
Run Code Online (Sandbox Code Playgroud)

但在我看来,它应该比这更简单.这是解决这个问题的更加pythonic的方法吗?

python pandas

3
推荐指数
1
解决办法
1487
查看次数

标签 统计

pandas ×2

python ×2

format ×1

r ×1

rank ×1

sorting ×1

string ×1

top-n ×1