Как использовать цикл for для умножения отдельных значений в Python DataFrame - PullRequest
0 голосов
/ 07 ноября 2018

Мне интересно, как использовать цикл for, когда я хочу изменить отдельные значения внутри DataFrame (panda) в python,

Допустим, у меня есть, например, следующий DataFrame, содержащий цены на индексы NFSE и DAX.

   Date       NFSE   DAX
2018/02/01  32.085  43.042
2018/02/02  31.036  43.023
2018/02/03  30.013  42.016

Я хочу преобразовать все указанные цены в процентную доходность журнала: rt = 100 * np.log (Pt / Pt − 1).

Как я могу использовать цикл for, который объединяет все цены, создавая новый DataFrame с процентным возвратом журнала?

Заранее спасибо!

Приветствия

Julian

1 Ответ

0 голосов
/ 07 ноября 2018

Дает ли это желаемый результат?

# pick the columns you wish to calculate
# a single column must be in a list
col_list = ['NFSE', 'DAX']
# create a new dataframe with only columns from col_list
df_log = df[col_list].copy()

# you can use a loop to run through your col_list columns
for col in df_log.columns:
    df_log[col] = 100 * np.log(df_log[col] / df_log[col].shift())

print(df_log)

                 NFSE         DAX
2018-02-01        NaN         NaN
2018-02-02  -3.324081   -0.044153
2018-02-03  -3.351720   -2.368436

setup df

df = pd.DataFrame({'NFSE': [32.085, 31.036, 30.013],
                   'DAX': [43.042, 43.023, 42.016]},
                  index=pd.date_range('2018/02/01', periods=3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...