我有两个数据帧,一个叫做Clim
,另一个叫做O3_mda8_3135
Clim
是一个数据帧,包括一年数据的月平均气象参数;以下是数据帧的示例:
Clim.head(12)
Out[7]:
avgT_2551 avgT_5330 ... avgNOx_3135(ppb) avgCO_3135(ppm)
Month ...
1 14.924181 13.545691 ... 48.216128 0.778939
2 16.352172 15.415385 ... 36.110385 0.605629
3 20.530879 19.684720 ... 20.974544 0.460571
4 23.738576 22.919158 ... 14.270995 0.432855
5 26.961927 25.779007 ... 11.087005 0.334505
6 32.208322 31.225072 ... 12.801409 0.384325
7 35.280124 34.265880 ... 10.732970 0.321284
8 35.428857 34.433351 ... 11.916420 0.326389
9 32.008317 30.856782 ... 15.236616 0.343405
10 25.691444 24.139874 ... 24.829518 0.467317
11 19.310550 17.827946 ... 36.339847 0.621938
12 14.186050 12.860077 ... 49.173287 0.720708
[12 rows x 20 columns]
我还有数据框O3_mda8_3135
,它是通过首先计算每个成分的8小时滚动平均值,然后找到臭氧的最大日值创建的,这就是为什么所有时间戳和指数都不同的原因。一年中每天每个气象参数都有一个值。以下是此数据帧的示例:
O3_mda8_3135
Out[9]:
date Temp_C_2551 ... CO_3135(ppm) O3_mda8_3135
12 2018-01-01 12:00:00 24.1 ... 0.294 10.4000
36 2018-01-02 12:00:00 26.3 ... 0.202 9.4375
60 2018-01-03 12:00:00 22.8 ... 0.184 7.1625
84 2018-01-04 12:00:00 25.6 ... 0.078 8.2500
109 2018-01-05 13:00:00 27.3 ... NaN 9.4500
... ... ... ... ...
8653 2018-12-27 13:00:00 19.6 ... 0.115 35.1125
8676 2018-12-28 12:00:00 14.9 ... 0.097 39.4500
8700 2018-12-29 12:00:00 13.9 ... 0.092 38.1250
8724 2018-12-30 12:00:00 17.4 ... 0.186 35.1375
8753 2018-12-31 17:00:00 8.3 ... 0.110 30.8875
[365 rows x 24 columns]
我想知道如何从O3_mda8_3135
中相应的列和行中减去Clim
中的平均值。例如,我想从另一个数据框O3_mda8_3135
,列名Temp_C_2551
中1月份的每一天中减去1月份站点2551的平均温度值(avgT_2551
数据框中的第1个月)
avgT_2551
对应于另一个数据帧中的Temp_C_2551
有没有一个简单的方法可以做到这一点?我应该从datetime中提取月份并将其放入O3_mda8_3135
数据帧的另一列中吗?我还是一个初学者,如果有任何建议或提示,我将不胜感激
我看到了这篇文章How to subtract the mean of a month from each day in that month?,但没有提供足够的信息让我了解正在执行的操作
多亏了堆栈溢出帖子,我自己找到了答案:)
我在与月份对应的两个数据框中创建了新列。我最初使用
Clim = Clim.set_index('Month')
将Clim
中的索引设置为月份,因此我删除了该行。然后,我在O3_mda8_3135
数据框中为Month创建了一列。之后,我根据“Month”列合并了两个数据帧,然后使用pd.sub函数减去我想要的列下面是一些示例代码,很抱歉变量太长了,但是这个数据帧太大了
这些帖子帮助我回答了我的问题:
python pandas extract year from datetime: df['year'] = df['date'].year is not working
How to calculate monthly mean of a time seies data and substract the monthly mean with the values of that month of each year?
Find difference between 2 columns with Nulls using pandas
相关问题 更多 >
编程相关推荐