Python Pandas dataframe создает новый столбец, который содержит вычитание из другого столбца - PullRequest
1 голос
/ 01 апреля 2020

На данный момент у меня есть что-то вроде:

date      item_number

2/28/2020 3.1

2/27/2020 3.9

2/26/2020 2.1

2/25/2020 1.9

Я хотел бы иметь что-то вроде:

date      item_number delta

2/28/2020 3.1            0

2/27/2020 3.9          0.8

2/26/2020 2.1         -1.8

2/25/2020 1.9         -0.2

Есть идеи, как это сделать? Я новичок в python и надеюсь получить несколько предложений. Спасибо.

Ответы [ 2 ]

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

Вы можете использовать shift и заполнить начальный NaN 0:

df['delta'] = (df['item_number'] - df['item_number'].shift()).fillna(0.)
0 голосов
/ 01 апреля 2020

Используйте Series.diff с заменой пропущенного значения на 0:

df['item_number'] = pd.to_numeric(df['item_number'])
df['delta'] = df['item_number'].diff().fillna(0)
print (df)
        date  item_number  delta
0  2/28/2020          3.1    0.0
1  2/27/2020          3.9    0.8
2  2/26/2020          2.1   -1.8
3  2/25/2020          1.9   -0.2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...