我有3列带有值,如果其中一列的值是另一列的两倍,则列表应附加索引
0 1 2 3
A 1 2 3
G 2 3 4
K 1 1 2
T 1 1 1
结果应该是[A,G,K]
我在下面的循环中遇到一个关键错误:
percentage = pd.concat([percent1, percent2, percent3], axis=1, join='inner')
percentage = percentage.reset_index()
AA= []
for i in range(0, len(percentage)):
if percentage[1][i] == 2*percentage[2][i]:
AA.append(percentage['index'][i])
elif percentage[2][i] == 2*percentage[3][i]:
AA.append(percentage['index'][i])
elif percentage[1][i] == 2*percentage[3][i]:
AA.append(percentage['index'][i])
错误是由列名称引起的。concat函数保持列名不变,此错误是由这些相同的列名引起的
实际错误的原因是在比较的右侧使用了第1、2和3列,但没有4列,只有3列。因此,此行:
…将在表达式的
percentage[3]
部分上引发KeyError(3)
不幸的是,我不知道如何解决这个问题,因为我不知道你的代码打算做什么,你也没有解释
最明显的猜测是您希望使用右侧的列0、1和2。但这只会给你一个空的列表,而不是…一个三行的列表,或者你想要的任何东西。而且,考虑到您在左边使用的是0、1和1列,而不是0、1和2列,我不确定猜测一开始有多明显
相关问题 更多 >
编程相关推荐