如果列和值的类型不同,则查询数据帧



我正在编写一个函数,它接受pandas-df、列名和值列表,并给出过滤后的df。此函数在内部使用df.query()。

在一个特定的情况下,我有一个数据帧,它有一列,其中同时存在整数和字符串。我的函数应该在一个元素都是整数的列表中过滤这个df。目前,我得到了一个空的df,因为字符串无法与int进行比较。即使在数据帧和查找列表中是相同的,例如"345"&345.

在熊猫身上处理这种情况的一般方法是什么?我可以将整数列表强制为字符串,但我希望远离它。这是因为我希望我的函数也能处理非整数值。我不确定强制字符串是否安全:例如,对于float。

您有很多提示,但我认为它们可以总结。如果没有更多的上下文,我不知道哪一个对你更有意义。

  • 将数字字符串转换为数字

    • 如果您担心浮点运算的问题,请只转换整数
    • 如果要保持数据的原样,请将转换后的值存储在其他列/对象中,并仅用于筛选
    • 如果要在筛选后的数据中保留数据类型,请筛选转换后的数据,并使用筛选后的索引对原始数据进行子集处理
  • 将数字转换为字符串(与上述注意事项相同)

  • 根据查找列表中的数字及其字符串表示形式进行筛选。

最新更新