我有一个结构如下的pd.DataFrame
:
$ df.head()
target refTime name latitude longitude
0 5.0 2020-05-31 22:48:00 YMLT -41.529999 147.190002
1 6.0 2020-05-31 22:51:00 YWGT -36.419998 146.300003
2 6.0 2020-05-31 22:56:00 YMAY -36.060001 146.929993
3 5.0 2020-05-31 22:47:00 SUMU -34.830002 -56.000000
4 3.0 2020-05-31 22:46:00 FACT -33.990002 18.600000
5 5.0 2020-05-31 23:00:00 SGES -25.450001 -54.849998
6 5.0 2020-05-31 23:00:00 SGAS -25.250000 -57.520000
7 5.0 2020-05-31 22:59:00 SUMU -34.830002 -56.000000
8 8.0 2020-05-31 23:00:00 NFFN -17.750000 177.449997
9 7.0 2020-05-31 23:00:00 SBPS -16.430000 -39.080002
10 7.0 2020-05-31 22:50:00 NSTU -14.330000 -170.720001
这是2020年5月31日各台站记录的天气数据。可能存在重复的(站点)名称,例如SUMU
。但是,每个副本都有不同的refTime
问题:我如何删除重复的电台记录,同时保留最接近“完整”小时的观测值(在本例中,23:00:00
)?对于这个特定的示例,我最终会删除第3行
我们可以使用pandas.drop_duplicates()函数删除与另一行重复的所有行。 在您的情况下,调用df.drop_duplicates()
让我们试试
assign
和dt.round
我们的想法是按距离小时的距离对值进行排序,然后对值进行排序,并保留第一个实例
距离度量将如下所示:
使用^{} 表示舍入值,用} 创建绝对值,用^{} 表示最小值的索引,因此可以通过^{} 选择:
ref_time
减去,用^{详细信息:
相关问题 更多 >
编程相关推荐