Python:在集合过滤器上操作的熊猫数据框上选择值?
python 189
原文标题 :Python: Select values on pandas dataframe operating on set filters?
我正在研究这种熊猫数据框:
0 1 2 3
1 {1} p→q {} A
2 {2, 3, 4} ¬q {} A
3 {2, 6} ¬q {} A
4 {3} ¬ (¬p) {} A
5 {4} ¬p {} A
我现在的目标是获得一些通用的选择语句,它能够找到满足以下两个条件的第一行:
- 第 1 列等于某个特定值,例如¬q
- 第 0 列是某个特定值的子集,例如{5,6,2}
到目前为止我的代码:
import pandas as pd
example = {1: [{1}, 'p→q', set(), 'A'], 2: [{2,3,4}, '¬q', set(), 'A'], 3: [{2,6}, '¬q', set(), 'A'], 4: [{3}, '¬ (¬p)', set(), 'A'], 5: [{4}, '¬p', set(), 'A']}
origin = {5,6,2}
select = []
example = pd.DataFrame(example).transpose()
print(example)
select.append(example.loc[(example[1] == '¬q' &
example[0].issubset(origin)
)])
print select
最后一条语句中的错误消息:
AttributeError: 'Series' object has no attribute 'issubset'
如果您能解释一下,我将不胜感激,我如何解决问题以及为什么它不适用于 loc,类似于那个教程?