Пустой ввод для определенной функции в Python - PullRequest
1 голос
/ 05 марта 2020

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

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

Обычно для анализа первых нескольких строк в формате df я могу просто использовать

df1= df_slice(0,10)

Но что, если я sh нарежу последние 5 строк кадра данных? чтобы в функции

newdf = df[-5:]

я бы не использовал df1= df_slice(-5,'') или просто оставил пустым, как df1= df_slice(-5,).

Что мне делать?

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Найден ответ, просто введите None в качестве параметра.

0 голосов
/ 05 марта 2020
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:])

output:

(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

...