python-3.x - 熊猫:将每个值与列名匹配并创建另一列
问题描述
您好,我正在尝试在数据框中创建新列,现有列之一的列值与列名匹配。并想检查具有任何值或零的其他列值我在下面尝试的解决方案没有得到我的输出
我的数据框看起来像
loc Var A T C G
3985 T 0 0 1 0
4491 G 10 0 0 25
4492 G 0 1 0 0
5265 A 35 10 0 1
7328 G 0 0 20 1
6927 A 1 0 0 0
输出我想要的
loc Var A T C G REF ALT
3985 T 0 0 1 0 0 1
4491 G 10 0 0 25 25 10
4492 G 0 1 0 0 0 1
5265 A 35 10 0 0 35 10
7328 G 0 0 20 1 1 20
6927 A 1 0 0 0 1 0
列“REF”列匹配“Var”的值和将搜索除 Var 值以外的 ALT 列,其余列任何一个都有值,我只想在四列之间匹配(A,T,G,C ) 获取数据框中的另外两列
有什么建议么?帮助
解决方案
您可以使用DataFrame.lookup
first 来获取您的REF
列。然后我们通过从同一行中的所有其他值中ALT
获取值来创建列:max
l1 = df.lookup(df.index, df['Var'])
l2 = df.iloc[:, 2:].apply(list, axis=1)
df['REF'] = l1
df['ALT'] = [max(set([x]) ^ set(y)) for x, y in zip(l1, l2)]
loc Var A T C G REF ALT
0 3985 T 0 0 1 0 0 1
1 4491 G 10 0 0 25 25 10
2 4492 G 0 1 0 0 0 1
3 5265 A 35 10 0 1 35 10
4 7328 G 0 0 20 1 1 20
5 6927 A 1 0 0 0 1 0
推荐阅读
- css - 在 WordPress 中使标题具有粘性
- flutter - 为 Flutter Web 应用禁用 crashlytics 并为 Flutter 移动应用启用
- elasticsearch - 使用 Sencha Architect 的组合框
- flutter - 如何在颤动中验证动态创建的表单?
- python - 显示按 (7) 列之一分组的描述性统计
- c - 将 printf() 结果分配给变量
- function - 子例程中定义的格式给我错误,它是未定义的?
- python - 为什么我不能减去这两个值?
- html - 通过 Mule 4 发送电子邮件时 JSON 数组到表结构格式
- mongodb - 如何查询将日期存储为某种格式的字符串的 mongo 集合?