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 添加一个新列。我不确定我是否理解你的逻辑正确,所以数学可能需要一些工作
添加回答
举报
