python - 如何从 Python 中的 Double For 循环中的值创建字典?
问题描述
如何创建标题为“纬度”、“经度”、“DST_R”和“Kp_R”的字典并为每次迭代保存 dst_R 和 kp_R?
下面是我目前拥有的代码,并确保它正确打印了我想要的所有值,但我真的想将纬度(-90 到 90)、经度(0 到 359)、dst_R 和 kp_R 保存在字典中。
和 df_kp 具有以下格式:
for i in np.arange(0,360): # looping through longitude
for j in np.arange(-90,91): # looping through latitude
# DST Rigidity
dst_R = df_dst.query('lat == ' + str(j) + 'and lon == ' + str(i)).R
# Kp Rigidity
west_subset = West.query('times>= "2017-09-10 17:00:00" and times < "2017-09-10 19:05:00"')
for t in range(len(west_subset.times)):
current_time = west_subset.times.iloc[t]
current_hour = current_time.hour
if np.logical_and(current_hour >= 0, current_hour < 3):
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 00:00:00')+'"').kp.values[0]
elif np.logical_and(current_hour >= 3, current_hour < 6):
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 03:00:00')+'"').kp.values[0]
elif np.logical_and(current_hour >= 6, current_hour < 9):
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 06:00:00')+'"').kp.values[0]
elif np.logical_and(current_hour >= 9, current_hour < 12):
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 09:00:00')+'"').kp.values[0]
elif np.logical_and(current_hour >= 12, current_hour < 15):
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 12:00:00')+'"').kp.values[0]
elif np.logical_and(current_hour >= 15, current_hour < 18):
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 15:00:00')+'"').kp.values[0]
elif np.logical_and(current_hour >= 18, current_hour < 21):
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 18:00:00')+'"').kp.values[0]
else:
kp_tmp = kp.query('date == "' + datetime.strftime(west_subset.times.iloc[t], '%Y-%m-%d 21:00:00')+'"').kp.values[0]
if kp_tmp < 5:
kp_R = df_kp.query('LAT == ' + str(j) + 'and LON == ' + str(i)).R_quiet
else:
kp_R = df_kp.query('LAT == ' + str(j) + 'and LON == ' + str(i)).R_storm
最终我希望字典看起来像:
Latitude Longitude DST_R Kp_R
-90 0 -0.3013268844290973 0.03
-89 0 -0.29102307011436673 0.03
-88 0 -0.27900238806939714 0.05
-87 0 -0.2651162151965792 0.07
...
我之前尝试过的方法不起作用,因为我无法通过对 kp_Rdst_R
执行相同的操作来迭代。dst_R.item()[i]
所以我不知道如何保存这些值而不在每次循环运行时替换它们。我感谢任何和所有的建议!
解决方案
推荐阅读
- html - 在 chrome 中滚动 div 时 CPU 会跳转
- spring-integration - 如果容量已满且新消息即将到来,队列通道顺序如何工作?
- reactjs - JSX 元素类型“MultiSelectComponent”没有任何构造或调用签名
- prolog - 求一棵树的加权和
- docker - 如何自动将 Gitlab 备份到远程服务器
- javascript - 有什么方法可以根据它们的值(如负/正)隐藏条形吗?
- angular7 - 如何在Angular 7+中获取响应状态403而不是0
- c++ - 在一台 Windows 机器上生成的 pdb 文件是否可以在另一台 Windows 机器上工作
- maven - 在 Azure Repo git 的单个存储库中为子目录设置 maven 管道
- opencv - Opencv plus unity(资产存储插件)