小编Gre*_*urm的帖子

在熊猫管道中分配

比方说,我有以下DataFrame与原始输入数据,并希望使用一系列pandas函数(" 管道 ")来处理它.特别是,我想重命名和删除列,并根据另一列添加其他列.

    Gene stable ID  Gene name   Gene type   miRBase accession   miRBase ID
0   ENSG00000274494 MIR6832     miRNA       MI0022677           hsa-mir-6832
1   ENSG00000283386 MIR4659B    miRNA       MI0017291           hsa-mir-4659b
2   ENSG00000221456 MIR1202     miRNA       MI0006334           hsa-mir-1202
3   ENSG00000199102 MIR302C     miRNA       MI0000773           hsa-mir-302c
Run Code Online (Sandbox Code Playgroud)

目前我做了以下(有效):

tmp_df = df.\
         drop("Gene type", axis=1).\
         rename(columns = {
            "Gene stable ID": "ENSG",
            "Gene name": "gene_name",
            "miRBase accession": "MI",
            "miRBase ID": "mirna_name"
         })

result = tmp_df.assign(species = tmp_df.mirna_name.str[:3])
Run Code Online (Sandbox Code Playgroud)

结果:

    ENSG            gene_name   MI          mirna_name      species
0   ENSG00000274494 MIR6832     MI0022677   hsa-mir-6832    hsa
1 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何在RMarkdown中引用多篇论文

我如何在RMarkdown中引用多篇论文,就像在LaTex中一样

\cite{Bartel2004, Bartel2009a}

我试过了

[@Bartel2004, @Bartel2009a]

它呈现给

(D. P. Bartel 2004, David P. Bartel (2009))

这不是太糟糕,但第二个括号不应该在那里.

编辑:

r pandoc knitr r-markdown pandoc-citeproc

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

Pandas数据帧计算矩阵

这一点必须明显,但我找不到一个简单的解决方案.

我有像这样的pandas DataFrame:

actual | predicted
------ + ---------
Apple  | Apple
Apple  | Apple
Apple  | Banana
Banana | Orange
Orange | Apple
Run Code Online (Sandbox Code Playgroud)

我要这个:

       |  Apple  | Banana  | Orange
------ + ------- + ------- + -------
Apple  |  2      | 1       | 0
Banana |  0      | 0       | 1
Orange |  1      | 0       | 0
Run Code Online (Sandbox Code Playgroud)

python group-by pivot-table crosstab pandas

7
推荐指数
1
解决办法
3403
查看次数

Python 重载单个参数

假设我有一个带有许多参数的函数,例如

import pandas as pd

def f(df: pd.DataFrame, a: int, b: int, c: int, d: int, inplace: bool = True) -> Optional[pd.DataFrame]:
    raise NotImplementedError
Run Code Online (Sandbox Code Playgroud)

该函数将修改数据帧 ifinplace=True并返回修改后的副本 if inplace=False

我知道我能做到

@overload
def f(df: pd.DataFrame, a: int, b: int, c: int, d: int, inplace: Literal[True] = True) -> None:
    ...

@overload
def f(df: pd.DataFrame, a: int, b: int, c: int, d: int, inplace: Literal[False] = True) -> pd.DataFrame:
    ...
Run Code Online (Sandbox Code Playgroud)

通知打字系统这一事实。

但是,我想知道是否有一种方法可以在不重复整个函数定义的情况下执行此操作,如果有很多参数,这似乎很麻烦。我正在寻找类似的东西

@overload
def f(..., inplace: Literal[True]) -> None:
    ... …
Run Code Online (Sandbox Code Playgroud)

python overloading python-typing

6
推荐指数
1
解决办法
191
查看次数

Liquid 模板:获取符合条件的前 5 个帖子

我想在我的 jekyll-blog 的主页上显示 5 个最近的帖子,这些帖子有一个缩略图。如何实现这一目标?

我将缩略图设置为帖子标题中的属性:

---
layout: post
title: Lorem Ipsum
thumb: images/thumb.jpg
---
Run Code Online (Sandbox Code Playgroud)

我试过

{% for post in site.posts | sort:"date" | reverse | limit: 5 %}
    {% if post.thumb %}
        <img src= ... />
    {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但是当然,如​​果五个中的一个恰好没有图片,则只会显示四个。有没有办法解决这个问题?

liquid jekyll

4
推荐指数
1
解决办法
662
查看次数

如何将 data_files 安装到绝对路径?

我使用 pip 和 setuptools 来安装一个包。我希望 pip 将一些资源文件复制到/etc/my_package.

我的setup.py看起来像这样:

setup(
    ...
    data_files=[('/etc/my_package', ['config.yml'])]
)
Run Code Online (Sandbox Code Playgroud)

运行时pip install,文件以

~/.local/lib/python3.5/site-packages/etc/my_package/config.yml
Run Code Online (Sandbox Code Playgroud)

而不是/etc/my_package.

我究竟做错了什么?

(点子版本 9.0.1)

python pip

4
推荐指数
1
解决办法
3048
查看次数

第一个文档的 `_bookdown.yml`、`_output.yml` 和 yaml 头有什么区别?

使用bookdown创作文档时,我知道有四个放置配置选项的选项:

  • _bookdown.yml
  • _output.yml
  • .Rmd第一个文档的 yaml 标头
  • 传递给bookdown::render_book()函数的参数。

现在我的问题是:

  • 哪些选项可以放在哪里,即我可以互换使用所有文件吗?
  • 哪些选项应该放在哪里,即放置配置选项的良好做法是什么?

r bookdown

4
推荐指数
1
解决办法
1279
查看次数

如何使用PyCharm从命令行调试python脚本?

我想调试一个Python需要多个命令行参数的脚本,例如

myscript.py --input1 ./dir/file1.txt --input2 ./dir/file2.txt
Run Code Online (Sandbox Code Playgroud)

在中Pycharm。我知道,我可以使用Run/Debug Configuration添加命令行参数。但是,我觉得这很麻烦,因为每次我要修改参数时都必须打开菜单。此外,将文件指定为参数时没有文件名完成。

我更喜欢myscript.py从我最喜欢的外壳进行调用,该外壳具有文件名补全等功能,但是仍然PyCharm在该脚本上使用调试器。

python debugging terminal pycharm

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

随机双循环保持不变

我有以下c程序在循环中生成随机数.虽然这适用于整数,但当我尝试生成0和1之间的随机双精度时,该值在整个循环中保持不变.

  • 为什么会这样?
  • 如何在循环中的[0,1]中生成随机双精度?

资源:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(int argc, char** argv) {
    srand(time(NULL));
    for(int i=0; i<5; i++) {
        printf("%d\n", rand()); 
    }
    for(int i=0; i<5; i++) {
        printf("%d\n", (double) rand() / RAND_MAX); 
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

>gcc -O3 -o test test.c -lm 
>./test
787380606
1210256636
1002592740
1410731589
737199770
-684428956
-684428956
-684428956
-684428956
-684428956
Run Code Online (Sandbox Code Playgroud)

c random

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

如何在Rstudio服务器上使用Anaconda环境?

对于我的数据科学项目,我conda经常跟踪所有已安装的软件包。

> conda create -n my_project R=3.4.1 r-tidyverse
> conda activate my_project
> which R 
/storage/apps/anaconda3/envs/my_project/bin/R
> R --version
R version 3.4.1 (2017-06-30) -- "Single Candle"
Run Code Online (Sandbox Code Playgroud)

我如何在其中使用anaconda R rstudio-server?我知道rsession-which-r配置选项,但是那样我无法轻松地在环境之间切换。

r rstudio-server conda

2
推荐指数
1
解决办法
2149
查看次数

dplyr的数值列的总和

说,我有一个df带有一些文本和一些数字列的数据框

species            | short | A    | B    | C 
-------------------+-------+------+------+-----
Homo sapiens       | hsa   | 0.1  | 0.2  | 0.7
Mus musculus       | mmu   | 0.3  | 0.7  | 0.0
Rattus norvegicus  | rno   | 0.0  | 1.0  | 0.0
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用dplyr添加一列来计算所有列的最大值,但这仅在所有列都是数字的情况下才有效:

df %>%
    rowwise() %>% 
    mutate(max_score = max(.))
Run Code Online (Sandbox Code Playgroud)

忽略所有非数字列,如何实现相同的目标?

(显然,我可以A, B, C手动命名,但是假设我有一个包含很多列的“胖”数据框。)

r dplyr

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