3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
如果你想重復(fù)這些行,我會(huì)創(chuàng)建一個(gè)新的數(shù)據(jù)幀,在新的數(shù)據(jù)幀中執(zhí)行任何操作(總和 20 年,將溫度乘以常數(shù)或數(shù)組等......)然后使用concat()它來追加它到原始數(shù)據(jù)框:
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貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
我相信你正在尋找的是
dfName['newYear'] = dfName.apply(lambda x: x['year'] + 20,axis=1) dfName['tempDiff'] = dfName.apply(lambda x: x['avgTemp']*tempChange,axis=1)
這就是您應(yīng)用到每一行的方式。

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
其中 df 是您的數(shù)據(jù)框名稱:
df['tempChange'] = df['year']+ 20 * df['avgTemp']
這將使用上述邏輯向您的 df 添加一個(gè)新列。我不確定我是否理解你的邏輯正確,所以數(shù)學(xué)可能需要一些工作
添加回答
舉報(bào)