Как сохранить только определенные строки из фрейма данных в Python?

https://github.com/andruhon/moment-weekday-calc плагин для momentJS может быть полезен для подобных задач

Он не решает точной проблемы, но он может вычислять конкретные дни недели в диапазоне.

Использование:

moment().isoWeekdayCalc({  
  rangeStart: '1 Apr 2015',  
  rangeEnd: '31 Mar 2016',  
  weekdays: [1,2,3,4,5], //weekdays Mon to Fri
  exclusions: ['6 Apr 2015','7 Apr 2015']  //public holidays
}) //returns 260 (260 workdays excluding two public holidays)

1
задан pault 16 January 2019 в 21:27
поделиться

2 ответа

Как сказал @pault, вы не можете использовать сравнение (! =) Здесь, потому что index является именованным аргументом. Я хотел бы создать список всех индексов, например:

indices = list(range(0, 200))

, а затем удалить те, которые вы хотите сохранить:

for x in [128, 133, 140, 143, 199]:
    indices.remove(x)

. Теперь у вас есть список все индексы, которые вы хотите удалить:

dropped_data = dataset.drop(index=indices)
0
ответ дан Schematic 16 January 2019 в 21:27
поделиться

Чтобы объяснить причину вашего исключения, выражение

index != [128, 133, 140, 143, 199]

оценивается как условное выражение, а не обрабатывается index как ключевой аргумент. Python ищет переменную index для сравнения со списком. Поскольку index не определено, вы видите NameError.


Используйте Index.difference, чтобы исправить решение drop:

dataset.drop(index=df.index.difference([128, 133, 140, 143, 199]))

Или, что еще более идиотски, вы должны использовать loc - , выбрать , если у вас есть положительные ярлыки.

dataset.loc[[128, 133, 140, 143, 199]]
# If they are indexes,
# dataset.iloc[[128, 133, 140, 143, 199]]
0
ответ дан coldspeed 16 January 2019 в 21:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: