python - 如果元素在元组中,则选择 pandas DataFrame 行

标签 python pandas tuples

假设这是我的 df

   A     B
0  a  (33,32)
1  b  (44,33)
2  a  32
3  a  (66,33)
4  b  (77,34,12)
5  c  (88,1,55)

其中 B 列值是元组 我需要得到类似 df[df['B']contain 33]

   A     B
0  a  (33,32)
1  b  (44,33)
3  a  (66,33)

有什么办法可以实现吗?

最佳答案

如果有元组的混合数字,首先将整数转换为元组:

df['B'] = df['B'].apply(lambda x: x if isinstance(x, tuple) else (x,))

然后过滤元组中的值,例如:

df = df[df.B.apply(lambda x: 33 in x)]

或者:

df = df[[33 in x for x in df.B]]

或者:

df = df[pd.DataFrame(df.B.tolist()).eq(33).any(axis=1)]

print (df)
   A         B
0  a  (33, 32)
1  b  (44, 33)
3  a  (66, 33)

关于python - 如果元素在元组中,则选择 pandas DataFrame 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59728654/

相关文章:

python - 读取 csv(逗号分隔文件),值在引号中,逗号作为小数点

django - 属性错误 : 'tuple' object has no attribute 'startswith'

Python 属性错误 : 'dict' object has no attribute 'append'

python - 夹层的菜单页

python - 按 T​​rue 序列分组

python - Numpy 数组文档切片规则

python - 根据特定于列的条件将函数应用于 DataFrame 的每一列,无需循环

python - Windows 解释器上未定义命名元组

python - 如何为 azure blob 创建/设置新元数据并使用 Python API 获取元数据?

python - 使用本地私钥通过 web3.py 发送 ERC20 token