小编Ssa*_*ank的帖子

将列名分配给pandas系列

我有一个熊猫系列

object x
Ezh2   2
Hmgb   7
Irf1   1
Run Code Online (Sandbox Code Playgroud)

我想将此保存为一个数据框,其中包含列名Gene和Count,我试过了

x_df = pd.DataFrame(x,columns = ['Gene','count'])
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我想要的最终形式是

Gene Count
Ezh2   2
Hmgb   7
Irf1   1
Run Code Online (Sandbox Code Playgroud)

你能建议怎么做吗?

python series dataframe pandas

21
推荐指数
3
解决办法
6万
查看次数

根据pandas数据帧中的多个列值选择行

我有一个pandas DataFrame df:

import pandas as pd

data = {"Name": ["AAAA", "BBBB"],
        "C1": [25, 12],
        "C2": [2, 1],
        "C3": [1, 10]}

df = pd.DataFrame(data)
df.set_index("Name")
Run Code Online (Sandbox Code Playgroud)

打印时看起来像这样(供参考):

      C1  C2  C3
Name            
AAAA  25   2   1
BBBB  12   1  10
Run Code Online (Sandbox Code Playgroud)

我想选择哪些行C1,C2并且C30和之间有值20.

你能建议一种优雅的方式来选择这些行吗?

python pandas

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

在python中以下划线分割并存储第一个值

我有一个像df一样的pandas数据框,带有一个列construct_name

construct_name
aaaa_t1_2    
cccc_t4_10
bbbb_g3_3
Run Code Online (Sandbox Code Playgroud)

等等.我想首先拆分下划线的所有名称,并将第一个元素(aaaa,cccc等)存储为另一个列名.

预期产出

construct_name  name
aaaa_t1_2       aaaa
cccc_t4_10      bbbb
Run Code Online (Sandbox Code Playgroud)

等等.

我尝试了以下内容 df['construct_name'].map(lambda row:row.split("_")),它给了我一个列表

[aaaa,t1,2]
[cccc,t4,10]
Run Code Online (Sandbox Code Playgroud)

等等

但是,当我这样做

df['construct_name'].map(lambda row:row.split("_"))[0]获取列表的第一个元素我得到一个错误.你能建议解决吗?谢谢

python pandas

11
推荐指数
3
解决办法
8797
查看次数

大熊猫数据帧的中位数

我有一个DataFrame df:

name   count    
aaaa   2000    
bbbb   1900    
cccc    900    
dddd    500    
eeee    100
Run Code Online (Sandbox Code Playgroud)

我想查看与计数列的中位数相差10倍的行.

我试过df['count'].median()并得到了中位数.但不知道如何进一步.你能建议我如何使用pandas/numpy吗?

预期产出:

name count distance from median

aaaa  2000   *****
Run Code Online (Sandbox Code Playgroud)

我可以使用任何度量作为距中位数的距离(绝对偏离中位数,分位数等).

python numpy r pandas

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

模糊字符串与grep匹配

我试图匹配包含字符串的文件中的行说ACTGGGTAAACTA.如果我做

grep "ACTGGGTAAACTA" file 
Run Code Online (Sandbox Code Playgroud)

它给了我完全匹配的行.有没有办法允许一定数量的不匹配(替换,插入或删除)?例如,我正在寻找序列

  1. 最多3个允许的格式,如"AGTGGGTAACCAA"等.

  2. 插入/删除(部分匹配,如"ACTGGGAAAATAAACTA"或"ACTAAACTA")

regex shell pattern-matching

6
推荐指数
2
解决办法
4692
查看次数

检查python中的字符串中是否存在字母

如何检查字符串中是否存在字母“N”。例子:

flag = False
if string contains N:
   flag = True
Run Code Online (Sandbox Code Playgroud)

所以flag = True如果字符串是"CNDDDNTD"flag = False如果字符串是"CCGGTTT"。我认为 re.search 会起作用,但不确定要使用的选项。

python

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

迭代python中的列表

我有序列L的列表(序列的1000多家公司)l = [ABCD,AABA,...].我还有一个f包含许多4个字母序列的文件(大约一百万个).我想l为每个序列选择最接近的字符串,f最多为汉明距离2,并更新计数器good_count.我为此编写了以下代码,但速度非常慢.我想知道它是否可以更快地完成.

def hamming(s1, s2):
    if len(s1) != len(s2):
            raise ValueError("Undefined for sequences of unequal length")  
    return sum(ch1 != ch2 for ch1, ch2 in zip(s1, s2))

f = open("input.txt","r")

l = [ABCD,AABA,...]

good_count = 0
for s in f:
     x = f.readline()
     dist_array = []
     for ll in l:
        dist = hamming(x,ll)
        dist_array.append(dist)
     min_dist = min(dist_array)
     if min_dist <= 2:
        good_count += 1
print good_count
Run Code Online (Sandbox Code Playgroud)

它的工作原理快,如果lf …

python

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

使用 inf 和 NaN 对 Pandas 数据框进行排序

我有一个 Pandas 数据框,我想按列的降序排序。

Name   count
AAAA    -1.1
BBBB     0
CCCC    -10
DDDD     inf
EEEE     3
FFFF     NaN
GGGG     30
Run Code Online (Sandbox Code Playgroud)

我想分类数量降序排列并移动infNaN行结束。 df.sort('count',ascending = False,na_position="last")NaN到最后。怎么处理inf

sorting dataframe pandas

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

向 Pandas 数据框中添加一行和列平均值

我有一个熊猫数据框

 df = pd.DataFrame([[0,1,10,15],[1,5,7,10],[10,15,0,0]], columns=['Apple','Orange','Banana','Pear'], index=['basket1','basket2','basket3'])
Run Code Online (Sandbox Code Playgroud)

我需要生成一个看起来像的数据框

Fruit   Apple   Orange   Banana  Pear  mean_basket

basket1   0        1       10     15     6.5

basket2   1        5        7     10     5.75

basket3   10       15       0      0     6.25

mean_fruit 3.66     7       5.66   8.33   6.16
Run Code Online (Sandbox Code Playgroud)

我这样做df['mean_basket'] = df.mean(axis=1)并生成了最后一栏。通过 df.mean(axis=0),我得到了每列的平均值,但我不知道如何将其作为新行添加到数据框中。请帮忙。

python pandas

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

在Python中写入文本文件作为制表符分隔列

我有两个清单

A = ["ATTTGTA", "ATTTGTA", "ATTTGTA", "ATTTGTA"]

A_modified = ["ATTGTA", "AAAT", "TTTA"]
Run Code Online (Sandbox Code Playgroud)

我想要一个输出选项卡分隔txt文件看起来像

ATTTGTA ATTGTA
ATTTGTA AAAT
ATTTGTA TTTA
Run Code Online (Sandbox Code Playgroud)

我尝试了下面的一段代码,但它没有在两列中写o/p,每次都是新行

with open ('processed_seq.txt','a') as proc_seqf:
          proc_seqf.write(A)
          proc_seqf.write("\t")
          proc_seqf.write(A_modified)
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出

ATTTGTA
    ATTGTA
ATTTGTA
    AAAT
ATTTGTA
    TTTA
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×8

pandas ×6

dataframe ×2

numpy ×1

pattern-matching ×1

r ×1

regex ×1

series ×1

shell ×1

sorting ×1