3 回答
TA貢獻1818條經驗 獲得超11個贊
如果你想重復這些行,我會創建一個新的數據幀,在新的數據幀中執行任何操作(總和 20 年,將溫度乘以常數或數組等......)然后使用concat()它來追加它到原始數據框:
import pandas as pd
tempChange=1.15
data = {'Country':['Afghanistan','Africa','Albania','Algeria','American Samoa'],'avgTemp':[14,24,13,23,27],'Year':[2012,2012,2012,2012,2012]}
df = pd.DataFrame(data)
df_2 = df.copy()
df_2['avgTemp'] = df['avgTemp']*tempChange
df_2['Year'] = df['Year']+20
df = pd.concat([df,df_2]) #ignore_index=True if you wish to not repeat the index value
print(df)
輸出:
Country avgTemp Year
0 Afghanistan 14.00 2012
1 Africa 24.00 2012
2 Albania 13.00 2012
3 Algeria 23.00 2012
4 American Samoa 27.00 2012
0 Afghanistan 16.10 2032
1 Africa 27.60 2032
2 Albania 14.95 2032
3 Algeria 26.45 2032
4 American Samoa 31.05 2032
TA貢獻1828條經驗 獲得超4個贊
我相信你正在尋找的是
dfName['newYear'] = dfName.apply(lambda x: x['year'] + 20,axis=1) dfName['tempDiff'] = dfName.apply(lambda x: x['avgTemp']*tempChange,axis=1)
這就是您應用到每一行的方式。
TA貢獻1895條經驗 獲得超3個贊
其中 df 是您的數據框名稱:
df['tempChange'] = df['year']+ 20 * df['avgTemp']
這將使用上述邏輯向您的 df 添加一個新列。我不確定我是否理解你的邏輯正確,所以數學可能需要一些工作
添加回答
舉報
