我有一个如下所示的循环:
with open(file, 'r') as f:
next(f)
for line in f:
print line
Run Code Online (Sandbox Code Playgroud)
但我不想在每次迭代时只打印当前行,我还想打印前一行,如下所示,但代码没有给我我正在寻找的内容:
with open(file, 'r') as f:
next(f)
for line in f:
previous(f) #this does not go to the previous line
print line
next(f)
print line
next(f)
Run Code Online (Sandbox Code Playgroud)
结果应该是这样的:
输入:
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
输出:
line1
line2
line2
line3
Run Code Online (Sandbox Code Playgroud) 我现在在一些python教程中多次看过以下内容.
if True:
do something
else:
pass
Run Code Online (Sandbox Code Playgroud)
对我来说,else语句似乎是不必要的.这只是为了使代码更清晰吗?或者是否有一些安全原因需要这样做?谢谢.
我目前正在从输入文件创建一个列表,如下所示:
list = inputFile.read().splitlines()
Run Code Online (Sandbox Code Playgroud)
然后在手动迭代并制作我关心的项目/行的第二个列表(这是第2,6,10,14,18行......).是否有更快的方法来splitlines()
自动执行此操作,仅list
包含我关心的行?
我正在尝试绘制一些数据随时间变化的散点图,并将标准偏差作为误差线。我对两个不同样品 A 和 B 的每个时间点进行三次测量。
Date A1 A2 A3 B1 B2 B3
1/1/17 4 5 6 2 3 4
1/2/17 6 7 8 5 6 4
Run Code Online (Sandbox Code Playgroud)
所以我正在导入这样的数据:
import pandas as pd
columns = ['Date', 'A1', 'A2', 'A3', 'B1', 'B2', 'B3']
dat = pd.read_csv('data', sep='\t', names=columns)
Run Code Online (Sandbox Code Playgroud)
那么我如何组合重复列以便我可以计算标准偏差然后绘图?我正在考虑重命名 A 和 B 列,使它们相同,然后可以合并?
我有一个非常简单的pandas DataFrame,我想选择DataFrame中在其中包含另一个字符串的列中具有数据的部分
因此,如果这是我的DataFrame并且我想要包含some
在该Loc
列中的那些列,该怎么做?
Loc
0 'something'
1 'nothing'
Run Code Online (Sandbox Code Playgroud)
我尝试了两件事:
df['some' in df['Loc']]
df[df.Loc.contains('some')]
Run Code Online (Sandbox Code Playgroud)
但是,两种解决方案都行不通。
我有一个看起来像这样的DataFrame(其中'ID'是索引的名称):
VAF
ID
chr1-115227855-T-A 0.002491
chr1-115227855-T-C 0.005449
chr1-115227856-C-A 0.000466
chr1-115227856-C-G 0.000311
chr1-115227856-C-T 0.002331
Run Code Online (Sandbox Code Playgroud)
第二个DataFrame看起来像这样:
Chrom Loc WT Var Change ConvChange AO DP VAF IntEx Gene Upstream Downstream Individual
0 chr1 115227855 T C T>C T>C 43 16155 0.00266171 TIII TIIIa NaN NaN 1
1 chr1 115227856 C T C>T C>T 25 16179 0.00154521 TIII TIIIa NaN NaN 1
2 chr1 115227857 C T C>T C>T 20 16178 0.00123625 TIII TIIIa NaN NaN 1
3 chr1 115227858 A T A>T T>A …
Run Code Online (Sandbox Code Playgroud) 我有一个 pandas DataFrame,其中包含包含列表的列。我正在尝试获取本专栏中列表的含义。
这是我的 DataFrame 的示例:
Loc Background
0 115227854 [0.000120481927711]
1 115227854 [0.000129117642312, 0.000131429072111, 0.00016...
2 115227855 [0.000123193166886]
3 115227855 [0.000142845482001, 0.000184789750329, 0.00018...
4 115227856 [0.000173490631506]
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情来设置一个新Mean
列等于该列中找到的每个列表中数据的平均值Background
:
sig_vars['Mean'] = sig_vars['Background'].mean()
Run Code Online (Sandbox Code Playgroud)
如果需要的话,这里是数据框:
df = {'Background': {0: [0.00012048192771084337],
1: [0.00012911764231185137,
0.0001314290721107509,
0.000163015792154865,
0.00018832391713747646,
0.00019627513412134165,
0.00020383723596708027,
0.0002114408734430263,
0.00022564565426983117,
0.000247843759294141],
2: [0.00012319316688567673],
3: [0.00014284548200146926,
0.00018478975032851512,
0.00018864365214110544,
0.00019392685725367248,
0.00022931689046296532,
0.00023965141612200435,
0.00036566589684372596,
0.00043096760847454704,
0.0004584752423369138],
4: [0.00017349063150589867]},
'Loc': {0: 115227854, 1: 115227854, 2: 115227855, 3: 115227855, 4: 115227856}}
Run Code Online (Sandbox Code Playgroud) 我有这样的字典:
{'AAAGGG': ['AGAGAGAA', 'AGAGAGAG'], 'AAAGGC': ['AGAGAGAG']})
Run Code Online (Sandbox Code Playgroud)
我想逐步执行每个键,然后逐步查看其相应值的字符.所以像这样:
for key in myDict:
for eachValue in key:
for char in eachValue:
do something
Run Code Online (Sandbox Code Playgroud)
希望有一种简单的方法可以做到这一点.
我有一个看起来像这样的文件:
@HISEQ:331:C85AMANXX:8:1101:16636:1980 1:N:0:ATCACGAC
NTCTATAAACTCTTCATGCCAGTTCCCTGTCTCATCAGATAGATTCTGAGGCCTCTAGGCATCAGCCGGATATCCCTAAGGACAGTGTTGGAGGAACTGCTGAGTGGATTCATGGTCAACTACCAA
+
#<<BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFF
@HISEQ:331:C85AMANXX:8:1101:2337:2047 1:N:0:ATCACGAC
CTGTGAAAACTCTTCATGCCAGTTCCCTGTCTCATCAGATAGATTCTGAGGCCTCTAGGCATCAGCCGGATATCCCTAAGGACAGTGTTGGAGGAACTGCTGAGTGGATTCATGGTCAACTACCAA
+
BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFF<FFF<FF<BFFFF<FFFFBFFFBFFFFF<B
Run Code Online (Sandbox Code Playgroud)
我使用以下grep命令:
grep -B 1 -A 2 'AGGCATCAGCCGGA' file.fastq | head > out.fastq
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样,你可以在第5行和第10行看到输出两个破折号,我不希望它如此:
@HISEQ:331:C85AMANXX:8:1101:16636:1980 1:N:0:ATCACGAC
NTCTATAAACTCTTCATGCCAGTTCCCTGTCTCATCAGATAGATTCTGAGGCCTCTAGGCATCAGCCGGATATCCCTAAGGACAGTGTTGGAGGAACTGCTGAGTGGATTCATGGTCAACTACCAA
+
#<<BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFF
--
@HISEQ:331:C85AMANXX:8:1101:2337:2047 1:N:0:ATCACGAC
CTGTGAAAACTCTTCATGCCAGTTCCCTGTCTCATCAGATAGATTCTGAGGCCTCTAGGCATCAGCCGGATATCCCTAAGGACAGTGTTGGAGGAACTGCTGAGTGGATTCATGGTCAACTACCAA
+
BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFF<FFF<FF<BFFFF<FFFFBFFFBFFFFF<B
--
Run Code Online (Sandbox Code Playgroud)
有没有办法在第5行和第10行没有破折号的情况下输出?
我不知道从哪里开始,所以即使把我指向正确的方向也会有所帮助.我想使用python在终端中连续更新一行,但无法弄清楚如何执行此操作.我正在考虑top
使用不断更新的信息但不打印新行.
如此简单的事情:
for i in myList:
print i #but overwrite previous output rather than putting on new line
Run Code Online (Sandbox Code Playgroud) 我试图在python2中使用os.system来创建一个存储在变量名下的新目录,但是不使用变量设置的字符串,bash调用使用变量名并在pwd中创建一个目录.
from os import system
outputDir = ~/Desktop/test
system('mkdir outputDir')
Run Code Online (Sandbox Code Playgroud) 我在python中从第一个脚本运行第二个脚本时遇到问题.为了简化我正在做的事情,以下代码说明了我提交的内容
file1.py:
from os import system
x = 1
system('python file2.py')
Run Code Online (Sandbox Code Playgroud)
file2.py:
from file1 import x
print x
Run Code Online (Sandbox Code Playgroud)
麻烦的是当我运行file1.py x时会永远打印直到被打断.有什么我做错了吗?