Новый фрейм данных pandas при заданных значениях индекса

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

У меня есть следующий pandas фрейм данных:

 import pandas as pd
timestamps = np.arange(1, 53)
quantities = np.arange(1, 53)
data = dict(quantities=quantities)
df = pd.DataFrame(data=data, columns=data.keys(), index=timestamps)
df.rename_axis('timestamps', inplace=True)
  

Я пытаюсь изменить фрейм данных на другие значения:

 timestamps_new = [1, 1, 1, 2, 2, 2]
df = df.loc[timestamps_new]
  

Это работает, но я получаю следующее предупреждение:

 FutureWarning: Passing list-likes to .loc or [] with any missing label will raise
KeyError in the future, you can use .reindex() as an alternative.
  

Почему это происходит? Я также получаю ошибку ключа при использовании:

 df = df.loc[timestamps_new, 'index']
  

или

 df = df.loc[timestamps_new, 'timestamps']
  

Спасибо за любую помощь в понимании этого.

Комментарии:

1. Это не ошибка, просто FutureWarning . Вы можете их подавить: import warnings; warnings.simplefilter(action='ignore', category=FutureWarning)

2. кроме того, loc происходит сбой, потому что у вас нет столбца с именем index или timestamps . Попробуйте df.loc[timestamps_new, 'quantities']

3. @ChrisA Что, если вам нужны все столбцы, а не только quantities ?

4. Просто используйте предложение? df.reindex(timestamps_new)

5. @ChrisA Да… :-/ Спасибо