#python #python-3.x #pandas #list #dataframe
#python #python-3.x #pandas #Список #фрейм данных
Вопрос:
price
price
date
2010-01-04 30.572827
2010-01-05 30.7725684
2010-01-06 30.668541
2010-01-07 30.08772827
Как я могу создать первое различие в фрейме данных для всех переменных в списке?
listxx = ["price"]
for x in listxx:
globals().update({f'{x}_first_diff':globals()[x].diff().dropna()})
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Комментарии:
1. Вам необходимо преобразовать
dtype
изx
, прежде чем использоватьdiff
Ответ №1:
Ваш код уже работает, но при использовании .diff()
вам нужно указать, каким должен быть источник разницы, в вашем примере вам, возможно, придется либо указать столбец во фрейме данных, либо использовать axis
параметр.
import pandas as pd
your_df = pd.DataFrame({'date': {0: '2010-01-04', 1: '2010-01-05', 2: '2010-01-06', 3: '2010-01-07'},
'price': {0: 30.572827, 1: 30.7725684, 2: 30.668540999999998, 3: 30.08772827}})
listxx = ["your_df"]
for x in listxx:
globals().update({f'{x}_first_diff':globals()[x]['price'].diff().dropna()})