我的熊猫桌出现了一个(可能是愚蠢的)问题。假设我有一张桌子,其中有一个名为“ lett”的列,其中每一行都包含一个字母,还有一个名为“ num”的列,其中带有数字。我还有以下2个列表
letter=["A", "B", "C"]
number=[[1, 2], [3, 4], [5, 6]]
现在,我想提取所有在字母列中带有A且在数字列中带有1或2,B带有3或4以及C带有5或6的行。
我的想法是运行
table['num'].isin(number[letter.index(table['lett'])])
但出现以下问题: ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。(也许是因为 table ['lett'] 确实不是引用特定行,而是引用“ lett”列中包含的所有可能值?)。 我应该做些什么?预先感谢
答案 0 :(得分:2)
首先将您的两个list
放在list
的{{1}}中,然后再将您的tuple
的数字和字母也写到columns
,那么我们可以使用tuple
isin
或使用tup=[(x,z)for x , y in zip(letter,number) for z in y ]
yourdf=df[df[['letter','Number']].apply(tuple,axis = 1).isin(tup)]
merge