首页 > 解决方案 > 在两个不同列上计算 Pandas Dataframe 中的新行

问题描述

所以我是 Python 的初学者,我有一个包含 Country、avgTemp 和 year 的数据框。我想要做的是计算每个国家/地区的新行,其中年份增加 20 并且 avgTemp 乘以一个名为 tempChange 的变量。我不想删除以前的值,我只想附加新值。

这是数据框的外观: 在此处输入图像描述

最好我还想创建一个循环运行代码一定次数超级感谢任何帮助!

如果您需要从数据框中复制值作为示例,您可以在此处获取:

Country        avgTemp        year

0 Afghanistan    14.481583    2012

1 Africa         24.725917    2012

2 Albania        13.768250    2012

3 Algeria        23.954833    2012

4 American Samoa 27.201417    2012

243行×3列

标签: pythonpandasdataframejupyter

解决方案


如果你想重复这些行,我会创建一个新的数据帧,在新的数据帧中执行任何操作(总和 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

推荐阅读