python - 在两个不同列上计算 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列
解决方案
如果你想重复这些行,我会创建一个新的数据帧,在新的数据帧中执行任何操作(总和 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
推荐阅读
- c# - 获取列表中出现次数最多的前 3 个数字
- macos - Mac 上的 CakePHP - 自制 HTTPD
- amazon-sqs - 为什么要解耦有快速生产者和慢消费者的应用程序?怎么了?
- python - 为数据框的每一行创建一个单独的线程
- c# - 可以用 C# 中的用户输入计算年龄,但不知道为什么会这样
- java - 对二维数组行和列 wize 进行排序
- reactjs - 传递带参数的函数以反应上下文(反应本机)
- javascript - 请帮助我.. RE: *FORM FIELDS* 我想隐藏()我的“类型=文本框”,直到在下拉选项中选择其他选项
- android - 如何将微调器选择的位置值和 EditText 值一起插入 SQLite 数据库?
- java - 在 Spring Boot 应用程序中未触发方面