когда моя функция f вызывается с переменной, я хочу проверить, является ли var фреймом данных pandas:
def f(var):
if var == pd.DataFrame():
print "do stuff"
Думаю, решение может быть довольно простым, но даже с
def f(var):
if var.values != None:
print "do stuff"
Я не могу заставить его работать так, как ожидалось.
var
равно пустому фрейму данных». Что вам действительно нужно, так это «если типvar
равен типуpd.DataFrame
». Вы можете проверить это с помощьюisinstance
Ответы:
Используйте
isinstance
, больше ничего:PEP8 прямо говорит, что
isinstance
это предпочтительный способ проверки типовИ даже не думай о
isinstance
обрабатывает наследование (см. В чем разница между type () и isinstance ()? ). Например, он скажет вам, является ли переменная строкой (илиstr
илиunicode
), потому что они происходят отbasestring
)Специально для
pandas
DataFrame
объектов:источник
Воспользуйтесь встроенной
isinstance()
функцией.источник
import pandas as pd
, а вместо этого простоimport pandas
? Просто выполнитеor
обе возможности, или есть что-то более сложное, о чем я не знаю?import pandas.DataFrame as panda_type
а затем внутри и проверить тип массива с помощьюisinstance(var, panda_type)