小编BCA*_*Arg的帖子

基于另一个数据帧/列表在数据帧中子集一列

我有以下table1这是一个由6列和8083行组成的数据框.下面我展示了这个table1:

|gene ID        |   prom_65|   prom_66|  amast_69|  amast_70|   p_value|
|:--------------|---------:|---------:|---------:|---------:|---------:|
|LdBPK_321470.1 |   24.7361|   25.2550|   31.2974|   45.4209| 0.2997430|
|LdBPK_251900.1 |  107.3580|  112.9870|   77.4182|   86.3211| 0.0367792|
|LdBPK_331430.1 |   72.0639|   86.1486|   68.5747|   77.8383| 0.2469355|
|LdBPK_100640.1 |   43.8766|   53.4004|   34.0255|   38.4038| 0.1299948|
|LdBPK_330360.1 | 2382.8700| 1871.9300| 2013.4200| 2482.0600| 0.8466225|
|LdBPK_090870.1 |   49.6488|   53.7134|   59.1175|   66.0931| 0.0843242|
Run Code Online (Sandbox Code Playgroud)

我有另一个数据框,称为accessions40510基因ID列表.它是第一列的子集,table1即其所有值(510)都包含在table1(8083)的第一列中.头部accessions40显示如下:

|V1             |
|:--------------|
|LdBPK_330360.1 |
|LdBPK_283000.1 |
|LdBPK_360210.1 |
|LdBPK_261550.1 |
|LdBPK_367320.1 |
|LdBPK_361420.1 | …
Run Code Online (Sandbox Code Playgroud)

r subset apply

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

在特定位置绘制一条水平线/注释Seaborn中的Facetgrid

A通过以下方式在Seaborn中制作了Facetgrid的箱线图

# Import the dataset
tips = sns.load_dataset("tips")

# Plot using Facegrid, separated by smoke
plt.style.use('ggplot')
g = sns.FacetGrid(tips, col="smoker", size=5, aspect=1.5)
g.map(sns.boxplot, "sex", "total_bill", palette='viridis', order=['Male', 'Female'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

我现在想在每个图中绘制不同的水平线。例如,一条水平线(坐标为(0,10))在左侧图中,而另一条水平线(坐标为(0,30))在右侧图中。

我该怎么做呢?

python seaborn facet-grid

7
推荐指数
3
解决办法
9339
查看次数

无法在 jupyternotebook(或 jupyterlab 会话)中更改目录(shell 命令)

我可以从打开的 jupyterlab(或 jupyternotebook)会话中运行 shell 命令,并在 shell 命令前加上感叹号,如下所示:

!mkdir /new_folder
Run Code Online (Sandbox Code Playgroud)

这一点,以及其他命令,如lspwd工作,但如果我尝试更改目录cd,如下图所示

!cd /path/to/mydir
Run Code Online (Sandbox Code Playgroud)

这不起作用,我注意到当前工作目录将始终是保存我的 jupyter notebook (.ipynb) 的目录。

如果我这样做也很奇怪:

!cd /path/to/mydir && pwd
Run Code Online (Sandbox Code Playgroud)

我会被/path/to/mydir打印出来,但如果,在下面的单元格上我做

!pwd

我将获得保存 jupyternotebook 的当前目录,即显然我最终无法更改!cdjupyternotebook 中的工作目录。

有谁知道是什么问题?

ipython python-3.x jupyter-notebook

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

在字符串中添加前导零

我的data.frame的一列如下所示:

c("BP_1_CSPP", "BP_2_GEGS", "BP_3_AEAG", "BP_4_KPAP", "BP_5_TAKP", 
"BP_6_GGDR", "BP_7_MQQP", "BP_8_EEEE", "BP_9_RSDP", "BP_10_APAS", 
"BP_11_KRGG", "BP_12_RSQQ", "BP_13_QQLS", "BP_14_EPEV", "BP_15_AAPS", 
"BP_16_SDVT", "BP_17_GQQQ", "BP_18_AETP", "BP_19_PPSA", "BP_20_DATP", 
"EpQ_1_AYAT", "EpQ_2_HEKL", "EpQ_3_SCSV", "EpQ_4_MAYV", "EpQ_5_LKDP", 
"EpQ_6_ERCE", "EpQ_7_DNPA", "EpQ_8_YGIS", "EpQ_9_GMSS", "EpQ_10_AAKK", 
"EpQ_11_NIRI", "EpQ_12_ERRR", "EpQ_13_MDRE", "EpQ_14_SRQM", "EpQ_15_DWSI", 
"EpQ_16_VLVQ", "EpQ_17_GRTI", "EpQ_18_EKVR", "EpQ_19_PDVA", "EpQ_20_ADVT", 
"LbT_1_RPGG", "LbT_2_TQGD", "LbT_3_EVKS", "LbT_4_VIEM", "LbT_5_GSAD", 
"LbT_6_VRPI", "LbT_7_CELG", "LbT_8_APQQ", "LbT_9_SAEE", "LbT_10_GEAE", 
"LbT_11_EELR", "LbT_12_EWAN", "LbT_13_IKEE", "LbT_14_VSDF", "LbT_15_WEDV", 
"LbT_16_SGGA", "LbT_17_KATN", "LbT_18_EREG", "LbT_19_AWAS", "LbT_20_VDRD", 
"abc_1_CVTQ", "abc_2_KEAP", "abc_3_TAYI", "abc_4_MITN", "abc_5_MPTV", 
"abc_6_TRTG", "abc_7_KSTI", "abc_8_KEAI", "abc_9_HVYS", "abc_10_LGMG", 
"abc_11_VAYQ", "abc_12_AGTG", "abc_13_TDSW", "abc_14_HKKS", "abc_15_YGLA", 
"abc_16_WEEW", "abc_17_HSTI", "abc_18_EKCI", "abc_19_PAGI", …
Run Code Online (Sandbox Code Playgroud)

regex r string-substitution gsub

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

无法使用 if_exists='append' 从 Pandas 数据帧填充 MySQL 数据库

我正在尝试编写一个脚本来使用多个 Pandas 数据框填充 mySQL 数据库。为简单起见,我将在此处演示使用单个 Pandas df 填充数据库的代码

我按如下方式连接到数据库:

导入 mysql.connector 导入熊猫作为 pd

# create the cursor and the connector
conn = mysql.connector.connect(
        host='localhost',
        user='root',
        password='my_password')

c = conn.cursor(buffered=True)

# Create the database
c.execute('CREATE DATABASE IF NOT EXISTS ss_json_interop')


# Connect now to the ss_json_interop database
conn = mysql.connector.connect(
            host='localhost',
            user='root',
            password='my_password', 
            database='ss_json_interop')

c = conn.cursor(buffered=True)



#### Create the table
c.execute("""CREATE TABLE IF NOT EXISTS sample_sheet_stats_json (
        ss_ID int NOT NULL AUTO_INCREMENT,
        panel text,
        run_ID text,
        sample_ID text,
        i7_index_ID text, …
Run Code Online (Sandbox Code Playgroud)

mysql python-3.x pandas

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

R - 写入没有第 0 列的文件(write.csv 或 write.table)

假设我有以下数据框,名为 highly expressed

|    |New IDs         | Mean amast| Mean promast|Old IDs        |
|:---|:---------------|----------:|------------:|:--------------|
|44  |LdBPK_010009200 |   37.16175|     33.72800|LdBPK_010440.1 |
|46  |LdBPK_010009300 |   35.67275|     32.05529|LdBPK_010440.1 |
|83  |LdBPK_010012800 |    6.84300|     16.04800|LdBPK_010790.1 |
|84  |LdBPK_010012900 |    6.92775|     15.62371|LdBPK_010790.1 |
|93  |LdBPK_020005100 |    5.89950|     27.03371|LdBPK_210020.1 |
|300 |LdBPK_030014900 |    7.59575|     12.38143|LdBPK_030960.1 |
Run Code Online (Sandbox Code Playgroud)

我现在想获得一个仅包含“旧 ID”(即整个第四列)下的字符串的列表,以进行进一步的数据操作。当我编写以下命令时:

write.table(highly_expressed$`Old IDs`, file = "test", quote = F, sep = "\t")
Run Code Online (Sandbox Code Playgroud)

我的输出文件包含两列(不仅仅是一列,正如我所期望的那样),如下所示:

|  X|x              |
|--:|:--------------|
|  1|LdBPK_010440.1 |
|  2|LdBPK_010440.1 |
|  3|LdBPK_010790.1 |
|  4|LdBPK_010790.1 | …
Run Code Online (Sandbox Code Playgroud)

csv r

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

在基于列名的pandas数据帧上对lambda表达式使用if else语句

我有一个如下所示的数据框df:

import pandas as pd
df = pd.DataFrame({'a':[78.78, 77.26], 'b':[94.47,94.06], 'c':[0.72, 0.71], 'd':[0.19, 0.29]})
Run Code Online (Sandbox Code Playgroud)

对于列a,bc我想提取(到一个列表)的最小值,而列d我想要得到的最大值,即:

[77.26, 94.06, 0.71, 0.29]
Run Code Online (Sandbox Code Playgroud)

我主要是尝试用lambda表达式完成这个

例如,要获得所有最小值,我可以:

df.apply(lambda x:x.min(), axis = 0)
Run Code Online (Sandbox Code Playgroud)

我想过(当然它不起作用):

df_final.apply(lambda x:x.max() if x =='d' else x.min(), axis = 0)
Run Code Online (Sandbox Code Playgroud)

我发现这个问题正在做类似的事情,虽然条件语句是基于每个列的,而我想要基于x列名称的if else语句.事情是,即可迭代对象不是列名.然后我如何应用基于列名的lambda函数的else条件?

python lambda if-statement python-3.x pandas

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