小编use*_*857的帖子

在Python中向上移动一个目录

有一种简单的方法可以使用一行代码在python中移动一个目录吗?与cd ..命令行类似的东西

python directory

29
推荐指数
5
解决办法
8万
查看次数

熊猫:如果不存在则添加列

我是新手使用pandas并且正在编写一个脚本,我在数据框中读取,然后对某些列进行一些计算.

有时我会有一个名为"Met"的专栏:

df = pd.read_csv(File, sep='\t', compression='gzip', header=0, names=["Chrom", "Site", "coverage", "Met"]) 
Run Code Online (Sandbox Code Playgroud)

Othertimes我会:

df = pd.read_csv(File, sep='\t', compression='gzip', header=0, names=["Chrom", "Site", "coverage", "freqC"]) 
Run Code Online (Sandbox Code Playgroud)

我需要使用"Met"列进行一些计算,所以如果它不存在,我将需要使用以下方法计算它:

df['Met'] = df['freqC'] * df['coverage'] 
Run Code Online (Sandbox Code Playgroud)

有没有办法检查数据框中是否存在"Met"列,如果没有添加它?

python pandas

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

MySQL:Slow Drop table命令

我正在尝试使用

DROP TABLE IF EXISTS <myTableName>;
Run Code Online (Sandbox Code Playgroud)

然而即使几个小时后它仍在运行.有关解决方法的任何建议吗?

mysql

14
推荐指数
2
解决办法
8860
查看次数

使用另一个表中的数据向表添加列

我有一个表格如下:

Table1 <- data.frame(
    "Random" = c("A", "B", "C"), 
    "Genes" = c("Apple", "Candy", "Toothpaste"), 
    "Extra" = c("Up", "", "Down"), 
    "Desc" = c("Healthy,Red,Fruit", "Sweet,Cavities,Sugar,Fruity", "Minty,Dentist")
)
Run Code Online (Sandbox Code Playgroud)

赠送:

  Random      Genes Extra                       Desc
1      A      Apple    Up          Healthy,Red,Fruit
2      B      Candy       Sweet,Cavities,Sugar,Fruity
3      C Toothpaste  Down              Minty,Dentist
Run Code Online (Sandbox Code Playgroud)

我有另一个包含描述的表,并希望添加Genes列.例如,Table2将是:

Table2 <- data.frame(
    "Col1" = c(1, 2, 3, 4, 5, 6), 
    "Desc" = c("Sweet", "Sugar", "Dentist", "Red", "Fruit", "Fruity")
)
Run Code Online (Sandbox Code Playgroud)

赠送:

  Col1    Desc
1    1   Sweet
2    2   Sugar
3    3 Dentist
4    4     Red …
Run Code Online (Sandbox Code Playgroud)

r dataframe

11
推荐指数
2
解决办法
8083
查看次数

python将值附加到子列表

我在我的程序中遇到了问题而且我不确定我做错了什么.首先,我创建了一个空的列表列表.例如:

>>> Lists = [[]]*12
Run Code Online (Sandbox Code Playgroud)

这使:

>>> Lists
[[], [], [], [], [], [], [], [], [], [], [], []]
Run Code Online (Sandbox Code Playgroud)

但是,在尝试将值附加到单个子列表时,它会将值添加到所有子列表.例如:

>>> Lists[2].append(1)
Run Code Online (Sandbox Code Playgroud)

得到:

>>> Lists
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
Run Code Online (Sandbox Code Playgroud)

有没有办法只附加到一个子列表,以便结果如下所示:

>>> Lists
    [[], [], [1], [], [], [], [], [], [], [], [], []]
Run Code Online (Sandbox Code Playgroud)

python list append

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

Pandas:在ID上分割数据帧并使用生成的文件名写入csv

我有一个我想迭代的pandas数据帧.例如,我的数据框的简化版本可以是:

chr    start    end    Gene    Value   MoreData
chr1    123    123    HAPPY    41.1    3.4
chr1    125    129    HAPPY    45.9    4.5
chr1    140    145    HAPPY    39.3   4.1
chr1    342    355    SAD    34.2    9.0
chr1    360    361    SAD    44.3    8.1
chr1    390    399    SAD    29.0   7.2
chr1    400    411    SAD    35.6   6.5
chr1    462    470    LEG    20.0    2.7
Run Code Online (Sandbox Code Playgroud)

我想迭代每个独特的基因并创建一个名为的新文件:

for Gene in df: ## this is where I need the most help

    OutFileName = Gene+".pdf"
Run Code Online (Sandbox Code Playgroud)

对于上面的例子,我应该进行三次迭代,包括3个outfiles和3个数据帧:

HAPPY.pdf

chr1    123    123    HAPPY    41.1    3.4 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

R:创建名称来自变量的新列

我有一个包含多个列的数据框,并希望添加一个新列并根据前一个变量命名.例如:

df <- data.frame("A" = c(1, 2, 3, 4), "B" = c("a", "c", "d", "b"))
Variable <- "C"
Run Code Online (Sandbox Code Playgroud)

这是变量将要更改的函数的一部分,而不是每次指定:

df$C <- NA
Run Code Online (Sandbox Code Playgroud)

我想要一行将"变量"命名为附加列

variables r dataframe

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

Python:由两个元素组成的内存高效的元组列表

我有一个非常大的元组列表,我想按两个元素排序.例如:

List = [('chr1', 34234, 'extrainfo'), ('chr1', 1234, 'extrainfo'), ('chr3', 4234, 'extrainfo'), ('chr1', 3241, 'extrainfo')]
Run Code Online (Sandbox Code Playgroud)

这是一个非常大的列表,我想使用以下方式排序:

List = sorted(List, key=lambda i: (i[0], int[1])))
Run Code Online (Sandbox Code Playgroud)

这在使用较小的列表(例如上面的示例)时效果很好.但是,当我使用更大的数据集运行代码时,我会收到内存错误:

Python(32306) malloc: *** mmap(size=34684928) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Traceback (most recent call last):
  File "MyCode.py", line 139, in <module>
    List = sorted(List, key=lambda i: (i[0], int(i[1])))
MemoryError
Run Code Online (Sandbox Code Playgroud)

python memory sorting

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

根据维恩图中R中另一列中的字符串计算列中的所有值

我有一个文件,我转换为数据框,如下所示:

D <- data.frame(
    V1 =c("B", "A_B", "A_B_C", "C_D", "A_C", "C_B_D", "C", "C_A_B_D", "B_C", "C_A_D", "A_D", "D", "A", "B_D", "A_B_D"), 
    V2 = c(15057, 5, 9, 1090, 4, 1250, 3943, 11, 2517, 5, 5, 2280, 5, 1735, 4))
Run Code Online (Sandbox Code Playgroud)

我需要将此数据帧转换为可用于创建4向venn图的数字列表.在此示例中,如果正确添加,则值是正确的值.我手动完成了这个,但由于我需要创建几个类似的图,我想找到一种更有效地做到这一点的方法.

library("VennDiagram")
venn.plot <- draw.quad.venn(
  area1 = 48,
  area2 = 20588,
  area3 = 8829,
  area4 = 6380,
  n12 = 29,
  n13 = 29,
  n14 = 25,
  n23 = 3787,
  n24 = 3000,
  n34 = 2356,
  n123 = 20,
  n124 = 15,
  n134 = …
Run Code Online (Sandbox Code Playgroud)

plot replace r dataframe

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

Python加速搜索范围字典中的值

我有一个带有一列值的文件,我想用它来与包含两个值的字典进行比较,这两个值一起形成一个范围.

例如:文件A:

Chr1   200    ....
Chr3   300    
Run Code Online (Sandbox Code Playgroud)

档案B:

Chr1    200    300    ...
Chr2    300    350    ...
Run Code Online (Sandbox Code Playgroud)

现在我为文件B创建了一个值字典:

for Line in FileB:
        LineB = Line.strip('\n').split('\t')
        Ranges[Chr].append(LineB)
Run Code Online (Sandbox Code Playgroud)

为了比较:

for Line in MethylationFile:
        Line = Line.strip("\n")
        Info = Line.split("\t")
        Chr = Info[0]
        Location = int(Info[1])
        Annotation = ""
        for i, r in enumerate(Ranges[Chr]):
            n = i + 1
            while (n < len(Ranges[Chr])):
                    if (int(Ranges[Chr][i][1]) <= Location <= int(Ranges[Chr][i][2])):
                        Annotation = '\t'.join(Ranges[Chr][i][4:])
                    n +=1
            OutFile.write(Line + '\t' + Annotation  + '\n')
Run Code Online (Sandbox Code Playgroud)

如果我离开while循环程序似乎没有运行(或者可能运行速度太慢而无法获得结果),因为我在每个字典中有超过7,000个值.如果我将while循环更改为if循环,程序将以非常慢的速度运行.

我正在寻找一种方法来使这个程序更快更有效

python search dictionary numpy range

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

标签 统计

python ×6

dataframe ×4

r ×3

pandas ×2

append ×1

dictionary ×1

directory ×1

list ×1

memory ×1

mysql ×1

numpy ×1

plot ×1

range ×1

replace ×1

search ×1

sorting ×1

variables ×1