Как проверить, является ли переменная списком python, массивом numpy или серией pandas

У меня есть функция, которая принимает переменную, которая будет работать, если это один из следующих трех типов

 1. pandas Series
 2. numpy array (ndarray)
 3. python list

любой другой тип должен быть отклонен. Каков наиболее эффективный способ проверить это?

3 ответов


вы можете сделать это с помощью isinstance:

import pandas as pd
import numpy as np
def f(l):
    if isinstance(l,(list,pd.core.series.Series,np.ndarray)):
        print(5)
    else:
        raise Exception('wrong type')

затем f([1,2,3]) печать 5 пока f(3.34) выдает ошибку.


Python type () должен выполнить эту работу здесь

l = [1,2]
s= pd.Series(l)
arr = np.array(l) 

при печати

type(l)
list

type(s)
pandas.core.series.Series

type(arr)
numpy.ndarray

Это все действительно зависит от того, что вы пытаетесь достичь (вы позволите кортеж, как про