我有以下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) 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))仅在右侧图中。
我该怎么做呢?
我可以从打开的 jupyterlab(或 jupyternotebook)会话中运行 shell 命令,并在 shell 命令前加上感叹号,如下所示:
!mkdir /new_folder
Run Code Online (Sandbox Code Playgroud)
这一点,以及其他命令,如ls和pwd工作,但如果我尝试更改目录用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 中的工作目录。
有谁知道是什么问题?
我的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) 我正在尝试编写一个脚本来使用多个 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) 假设我有以下数据框,名为 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) 我有一个如下所示的数据框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,b和c我想提取(到一个列表)的最小值,而列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-3.x ×3
r ×3
pandas ×2
python ×2
apply ×1
csv ×1
facet-grid ×1
gsub ×1
if-statement ×1
ipython ×1
lambda ×1
mysql ×1
regex ×1
seaborn ×1
subset ×1