我有一个定义的功能来切片数据帧并进行类似的分析
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,)
一样留空。
我该怎么办?
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
您注意到,省略切片元素表示None
。所以你可以打电话
newdf = df_slice(-5, None)
找到答案,只需输入None作为参数。