我有以下数据帧:
line# key amino0 pos0 amino1 pos1 amino2 pos2
0 14 A 13 M 2 K 14
1 12 A 13 M 2 A 1
2 1 A 1 M 2 P 3
3 2 P 3 P 4 B 6
4 1 A 1 M 2 P 35
5 12 A 31 A 32 M 41
6 1 M 24 P 23 A 22
7 12 A 31 A 32 M 42
8 4 J 5 P 4 B 6
9 3 B 6 I 7 P 4
10 8 B 6 H 10 I 7
我想用出现频率大于等于的键更新列“key”;1.我的输出应该如下所示:
line# key amino0 pos0 amino1 pos1 amino2 pos2
0 14_1 A 13 M 2 K 14
1 12_1 A 13 M 2 A 1
2 1_1 A 1 M 2 P 3
3 2_1 P 3 P 4 B 6
4 1_2 A 1 M 2 P 35
5 12_2 A 31 A 32 M 41
6 1_3 M 24 P 23 A 22
7 12_3 A 31 A 32 M 42
8 4_1 J 5 P 4 B 6
9 3_1 B 6 I 7 P 4
10 8_1 B 6 H 10 I 7
对于“key”列中的每个元素,第一部分是key,第二部分是freq occurrence number。例如,键12的频率为3,因此,三行中出现的三个键12将更新为12_1、12_2、12_3
以下代码仅给出freq>;1
df = pd.read_csv("myfile.txt", sep='\t', names = ['key', 'amino0', 'pos0','amino1', 'pos1','amino2', 'pos2'])
vc = df.key.value_counts()
print(vc[vc > 2].index[0])
如何更新密钥?最好避免循环
如果} :
key
列的类型是string
,请使用^{如果需要先转换整数:
详细信息:
首先使用^{} 作为列
key
定义的每个组的计数器:然后^{}
1
从1
开始,就像+ 1
:要转换为字符串,请使用^{} ,^{} means obviously ^{} :
相关问题 更多 >
编程相关推荐