【问题标题】:Blank input to a defined function in PythonPython中定义函数的空白输入
【发布时间】:2020-06-17 19:31:34
【问题描述】:

我有一个定义的函数来切片数据帧并像这样进行一些分析

def df_slice(startrow,endrow):
    do something...
    newdf = df[startrow,endrow]
    do something...
return newdf

通常用于分析df的前几行,我可以使用

df1= df_slice(0,10)

但是如果我想对数据帧的最后 5 行进行切片呢? 这样在函数中

newdf = df[-5:]

我不会使用df1= df_slice(-5,'') 或像df1= df_slice(-5,) 那样只留空白。

我该怎么办?

【问题讨论】:

  • newdf = df[endrow-startrow-5,endrow]

标签: python function dataframe slice


【解决方案1】:

找到答案,输入None作为参数。

【讨论】:

    【解决方案2】:
    df[startrow, endrow]
    

    等价于

    df.__getitem__((startrow, endrow))
    

    df[startrow:]
    

    等价于

    df.__getitem__(slice(startrow, None))
    

    这是一个示例代码:

    class MyCollection:
        def __getitem__(self, item):
            return item
    
    
    my_collection = MyCollection()
    print(my_collection[1, 2])
    print(my_collection[1:])
    

    输出:

    (1, 2)
    slice(1, None, None)  # start, stop, step
    

    如您所见,省略 slice 元素的意思是 None。 所以你可以打电话

    newdf = df_slice(-5, None)
    

    参考:https://docs.python.org/3/library/functions.html#slice

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 2019-02-13
      • 1970-01-01
      • 2014-12-21
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多