比方说,我有以下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) 我如何在RMarkdown中引用多篇论文,就像在LaTex中一样
\cite{Bartel2004, Bartel2009a}
我试过了
[@Bartel2004, @Bartel2009a]
它呈现给
(D. P. Bartel 2004, David P. Bartel (2009))
这不是太糟糕,但第二个括号不应该在那里.
编辑:
pandoc版本
pandoc 1.19.2.1
Compiled with pandoc-types 1.17.0.4, texmath 0.9, skylighting 0.1.1.4
Run Code Online (Sandbox Code Playgroud)这一点必须明显,但我找不到一个简单的解决方案.
我有像这样的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) 假设我有一个带有许多参数的函数,例如
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) 我想在我的 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)
但是当然,如果五个中的一个恰好没有图片,则只会显示四个。有没有办法解决这个问题?
我使用 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)
使用bookdown创作文档时,我知道有四个放置配置选项的选项:
_bookdown.yml_output.yml.Rmd第一个文档的 yaml 标头bookdown::render_book()函数的参数。现在我的问题是:
我想调试一个Python需要多个命令行参数的脚本,例如
myscript.py --input1 ./dir/file1.txt --input2 ./dir/file2.txt
Run Code Online (Sandbox Code Playgroud)
在中Pycharm。我知道,我可以使用Run/Debug Configuration添加命令行参数。但是,我觉得这很麻烦,因为每次我要修改参数时都必须打开菜单。此外,将文件指定为参数时没有文件名完成。
我更喜欢myscript.py从我最喜欢的外壳进行调用,该外壳具有文件名补全等功能,但是仍然PyCharm在该脚本上使用调试器。
我有以下c程序在循环中生成随机数.虽然这适用于整数,但当我尝试生成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) 对于我的数据科学项目,我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配置选项,但是那样我无法轻松地在环境之间切换。
说,我有一个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手动命名,但是假设我有一个包含很多列的“胖”数据框。)