Python 在字符串或整数上分割数据帧列的唯一语法

Python 在字符串或整数上分割数据帧列的唯一语法,python,pandas,function,types,Python,Pandas,Function,Types,我想编写一个函数,允许用户使用列名(字符串)或列的索引(整数)对pandasdataframe的列进行切片。有没有办法通过测试函数参数类型来避免难看的语法,如下所示 import pandas as pd def foo(df, col_to_slice_on): if isinstance(col_to_slice_on, str): return df.loc[:, col_to_slice_on] elif isinstance(col_to_slice_

我想编写一个函数,允许用户使用列名(字符串)或列的索引(整数)对
pandas
dataframe的列进行切片。有没有办法通过测试函数参数类型来避免难看的语法,如下所示

import pandas as pd

def foo(df, col_to_slice_on):
    if isinstance(col_to_slice_on, str):
        return df.loc[:, col_to_slice_on]
    elif isinstance(col_to_slice_on, int):
        return df.iloc[:, col_to_slice_on]
'''
df = pd.DataFrame({'A': [0,1,2], 'B': [3,4,5]})
foo1 = foo(df, 'A')
foo2 = foo(df, 0)
'''
如果这对其他人来说是显而易见的,就道歉


谢谢。

您的self_def函数适用于此类型的任务,pandaFYI中没有此类型的内置函数:以前有一个方法
xi
,但由于padnas 0.20.0,它已被弃用,如本手册中所述,您的self_def函数适用于此类型的任务,pandaFYI中没有用于此的内置函数:以前有一种方法
xi
,但由于padnas 0.20.0,该方法已被弃用,如手册中所述