计算几个条件的 T/F 个值
counting T/F values for several conditions
我是初学者 pandas。
我正在寻找几个患者的突变。我有 16 个不同的条件。我只是写了一个关于它的代码,但是如何通过 for 循环来做到这一点?我尝试在 MUT 列上找到更改并将它们设置为 True 和 False。然后尝试数 True/False 个数字。我只做了 4 个。
你能推荐一个更简单的方法,而不是将相同的代码写 16 次吗?
s1=df["MUT"]
A_T= s1.str.contains("A:T")
ATnum= A_T.value_counts(sort=True)
s2=df["MUT"]
A_G=s2.str.contains("A:G")
AGnum=A_G.value_counts(sort=True)
s3=df["MUT"]
A_C=s3.str.contains("A:C")
ACnum=A_C.value_counts(sort=True)
s4=df["MUT"]
A__=s4.str.contains("A:-")
A_num=A__.value_counts(sort=True)
我不是使用 Pandas 的专家,所以不知道是否有更简洁的方法来执行此操作,但也许以下方法可行?
chars = 'TGC-'
nums = {}
for char in chars:
s = df["MUT"]
A = s.str.contains("A:" + char)
num = A.value_counts(sort=True)
nums[char] = num
ATnum = nums['T']
AGnum = nums['G']
# ...etc
基本上,遍历每个唯一字符(T、G、C、-),然后提取您需要的值,最后将数字粘贴到字典中。然后,一旦循环完成,您就可以从字典中取回您需要的任何数字。
只需使用 value_counts
,这将为您提供列中所有唯一值的计数,无需创建 16 个变量:
In [5]:
df = pd.DataFrame({'MUT':np.random.randint(0,16,100)})
df['MUT'].value_counts()
Out[5]:
6 11
14 10
13 9
12 9
1 8
9 7
15 6
11 6
8 5
5 5
3 5
2 5
10 4
4 4
7 3
0 3
dtype: int64
我是初学者 pandas。
我正在寻找几个患者的突变。我有 16 个不同的条件。我只是写了一个关于它的代码,但是如何通过 for 循环来做到这一点?我尝试在 MUT 列上找到更改并将它们设置为 True 和 False。然后尝试数 True/False 个数字。我只做了 4 个。
你能推荐一个更简单的方法,而不是将相同的代码写 16 次吗?
s1=df["MUT"]
A_T= s1.str.contains("A:T")
ATnum= A_T.value_counts(sort=True)
s2=df["MUT"]
A_G=s2.str.contains("A:G")
AGnum=A_G.value_counts(sort=True)
s3=df["MUT"]
A_C=s3.str.contains("A:C")
ACnum=A_C.value_counts(sort=True)
s4=df["MUT"]
A__=s4.str.contains("A:-")
A_num=A__.value_counts(sort=True)
我不是使用 Pandas 的专家,所以不知道是否有更简洁的方法来执行此操作,但也许以下方法可行?
chars = 'TGC-'
nums = {}
for char in chars:
s = df["MUT"]
A = s.str.contains("A:" + char)
num = A.value_counts(sort=True)
nums[char] = num
ATnum = nums['T']
AGnum = nums['G']
# ...etc
基本上,遍历每个唯一字符(T、G、C、-),然后提取您需要的值,最后将数字粘贴到字典中。然后,一旦循环完成,您就可以从字典中取回您需要的任何数字。
只需使用 value_counts
,这将为您提供列中所有唯一值的计数,无需创建 16 个变量:
In [5]:
df = pd.DataFrame({'MUT':np.random.randint(0,16,100)})
df['MUT'].value_counts()
Out[5]:
6 11
14 10
13 9
12 9
1 8
9 7
15 6
11 6
8 5
5 5
3 5
2 5
10 4
4 4
7 3
0 3
dtype: int64