KeyError: при создании нового столбца в пандах - PullRequest
0 голосов
/ 01 апреля 2019

Я работаю над набором данных, и когда я пытаюсь создать новый столбец после нахождения разницы, я получаю KeyError: 'Filter'

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

d = {'col1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'col2': [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]}
df = pd.DataFrame(data=d)
fig, ax = plt.subplots(2, figsize=(8,8))

df['col2'].diff().plot(ax=ax[0])

cutoff = 3
df['filtered'] = df.loc[df['col2'].diff().abs() > cutoff]
df.plot(ax=ax[1])

Я использовал для создания новогостолбец, подобный этому (df['filtered'] = some operation), но в этой ситуации он дает KeyError: 'filtered'.Спасибо за помощь.

1 Ответ

1 голос
/ 01 апреля 2019

Вам необходимо заменить строку с последней на последнюю:

df['filtered'] = df.loc[df['col2'].diff().abs() > cutoff, 'col2']

при условии, что вы хотите получить отфильтрованную версию 'col2'. Как упоминалось в @RafaelC, текущая операция .loc [] возвращает все столбцы (в нашем случае 2), к которым применяется фильтр строк, следовательно, ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...