給出可以從
假設MoM列中的值2022-04-30是用單位百分比 (%) 預測的每月變化。
我需要根據 MoM 和價值列分別計算進出口的同比變化。
我已經使用下面的代碼實作了這一點,但是如何將其轉換為函式以使其更容易實作多列(如果我有其他列:GDP_MoM、GDP_value、CPI_MoM、CPI_value 等df)?提前感謝您的幫助。
import pandas as pd
df = pd.read_excel('./sample_data1.xlsx')
df.tail(5)
df['import_value_YoY_based_MoM'] = ((df['import_MoM']/100 1)*df['import_value'].shift(1) / df['import_value'].shift(12))-1
df['export_value_YoY_based_MoM'] = ((df['export_MoM']/100 1)*df['export_value'].shift(1) / df['export_value'].shift(12))-1
df['import_value_YoY'] = df['import_value'] / df['import_value'].shift(12) -1
df['export_value_YoY'] = df['export_value'] / df['export_value'].shift(12) -1
print(df.tail(5))
出去:

uj5u.com熱心網友回復:
將自定義函式與f-strings 一起使用,并在 list 中成對地輸入兩個列名cols:
def f(df, col1, col2):
df[f'{col2}_YoY_based_{col1}'] = ((df[col1]/100 1)*df[col2].shift(1) / df[col2].shift(12))-1
df[f'{col2}_YoY'] = df[col2] / df[col2].shift(12) -1
return df
cols = [('import_MoM','import_value'), ('export_MoM','export_value')]
for col1, col2 in cols:
df = f(df, col1, col2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/480596.html
標籤:Python python-3.x 熊猫 数据框
上一篇:如何根據高于/低于行中位數的值(如果>中位數,1,否則為0)將資料幀轉換為二進制?
下一篇:上升=False不作業熊貓資料框
