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

时间:2016-04-01 08:19:35

标签: python pandas

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

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

在熊猫中处理此问题的一般方法是什么?我可以强制整数列表到字符串,但我想远离那个。这是因为我希望我的函数能够处理非整数值。我不确定强制转换为字符串是否安全呢:例如。对于花车。

1 个答案:

答案 0 :(得分:0)

你有很多ions但我认为可以归纳。没有更多的背景,我无法告诉你哪一个对你更有意义。

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

    • 如果您害怕浮动问题,请仅转换整数。
    • 如果您希望保持数据不变,请将转换后的值存储在不同的列/对象中,并仅将其用于过滤。
    • 如果要将数据类型保留在过滤后的数据中,请过滤转换后的数据并使用过滤后的索引对原始数据进行子集化。
  • 将数字转换为字符串(与上述相同的注意事项)

  • 按查阅列表中的数字及其字符串表示进行过滤。