基于Python中的另一列的过滤列列表
在Python中,我在下面有一个类似的数据集,其中column1
和column2
是对象而不是字符串:
data = {'id': ['first_value', 'first_value', 'second_value', 'third_value'],
'column1': [a0, a0 a1, a2, a87],
'column2': [a0=4, a0=2;a1=8;a7=9, a2=0, a33=9]
}
并且我想保持' column2 < /code>
'值
:也位于 'column1'
中。
b。 'column2'
上的“ =”符号之后大于零的值(例如,'a2 = 0'
将从结果中删除,因为为零(... = 0)
,而a1 = 8
将留下来,因为它是8 (... = 8)< /code>)
因此,在这种情况下,我的结果是:
data = {'id': ['first_value', 'first_value'],
'column1': ['aO', 'a0;a1'],
'column2': ['a0=4', 'a0=2;a1=8']
}
我该如何完成?
In Python, I have a dataset like this below, where column1
and column2
are objects and not strings:
data = {'id': ['first_value', 'first_value', 'second_value', 'third_value'],
'column1': [a0, a0 a1, a2, a87],
'column2': [a0=4, a0=2;a1=8;a7=9, a2=0, a33=9]
}
And I want to keep on 'column2
' the values that:
a. are also in 'column1'
.
b. the values that are bigger than zero after the "=" sign on 'column2'
(so, for example, 'a2=0'
will be removed from the result because is zero (...=0)
, while a1=8
will stay because it's 8 (...=8)
)
Therefore in this case my result would be:
data = {'id': ['first_value', 'first_value'],
'column1': ['aO', 'a0;a1'],
'column2': ['a0=4', 'a0=2;a1=8']
}
How can I accomplish this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在行上尝试
应用
You can try
apply
on rows对于您的问题,使用循环似乎更容易。从
column1
值创建集合,并从column2
值创建词典;然后使用zip
一起穿越两者,并标识公共密钥,并查看这些密钥下的值是否为零:输出:
For your problem, it seems easier to use a loop. Create sets from
column1
values, and dictionaries fromcolumn2
values; then traverse both together usingzip
and identify common keys and see if the value under those keys are zero or not:Output: