我一直坚持从数百个数据集的给定纬度、经度和雨值中替换(校正)数组的值。这是我正在处理的数据集的一部分:
Lat Lon Rain
6.125 100.375 197.3
3.870 102.375 163.2
1.625 102.875 215.8
5.375 100.400 188.5
3.125 113.125 272.8
5.375 100.375 204.5
这是我坚持的脚本:
df1 = pd.DataFrame({
'Lat':Lat,
'Lon':Lon,
'Rain':Rain})
df1 = df1.set_index(['Lat','Lon'])
df2 = pd.DataFrame({
'Lat':[3.870, 5.375],
'Lon':[102.375, 100.375],
'Rain':[50, 60]})
df2 = df2.set_index(['Lat','Lon'])
output=df1.combine_first(df2).reset_index()
print(output)
Lat Lon Rain
0 1.625 102.875 215.8
1 3.125 113.125 272.8
2 3.870 102.375 163.2
3 5.375 100.400 188.5
4 5.375 100.375 204.5
5 6.125 100.375 197.3
输出仍然保持不变,虽然它应该是这样的
Lat Lon Rain
0 1.625 102.875 215.8
1 3.125 113.125 272.8
2 3.870 102.375 50.0 --here
3 5.375 100.400 188.5
4 5.375 100.375 60.0 --here
5 6.125 100.375 197.3
最后一个问题如何像默认数据一样排序?
提前一百万致谢。
一个可能的解决方案:
(df1.merge(df2, on=['Lat', 'Lon'], how='left', suffixes=('_x', ''))
.fillna({'Rain': df1['Rain']}).drop('Rain_x', axis=1))