gpt4 book ai didi

python - 查找每列中的字母数

转载 作者:行者123 更新时间:2023-11-28 21:37:26 27 4
gpt4 key购买 nike

我需要找到每列中的字母数,如下所示:

String: ATCG
TGCA
AAGC
GCAT

字符串是一个系列。

我需要编写一个程序来获取以下内容:

  0 1 2 3
A 2 1 1 1
T 1 1 0 1
C 0 1 2 1
G 1 1 1 1

我编写了以下代码,但我在 0 索引中得到一行,并在末尾得到列(列索引 450,实际列号 451),其中包含 nan 值。我不应该得到行或列 451。我只需要 450 列。

f = zip(*string)
counts = [{letter: column.count(letter) for letter in column} for column in
f]
counts=pd.DataFrame(counts).transpose()
print(counts)
counts = counts.drop(counts.columns[[450]], axis =1)

谁能帮我理解这个问题吗?

最佳答案

这是实现逻辑的一种方法。如果需要,您可以通过 lst = s.tolist() 将系列转换为列表。

lst = ['ATCG', 'TGCA', 'AAGC', 'GCAT']

arr = [[i.count(x) for i in zip(*lst)] for x in ('ATCG')]

res = pd.DataFrame(arr, index=list('ATCG'))

结果

   0  1  2  3
A 2 1 1 1
T 1 1 0 1
C 0 1 2 1
G 1 1 1 1

说明

  • 在列表推导式中,首先通过顺序迭代每个字符串的第一个、第二个、第三个和第四个元素来处理列。
  • 通过按顺序迭代“ATCG”来处理第二行。
  • 这会生成一个列表列表,可以将其直接输入到 pd.DataFrame 中。

关于python - 查找每列中的字母数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49469337/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com