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

#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()})