我正在研究這種熊貓資料框:
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,類似于該教程?
uj5u.com熱心網友回復:
使用 lambda 函式并在第一個條件周圍Series.apply添加:()
select.append(example.loc[(example[1] == '?q') &
example[0].apply(lambda x: x.issubset(origin))
])
print (select)
[ 0 1 2 3
3 {2, 6} ?q {} A]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/458773.html
