将AIS数据集中相同MMSI下相同经纬度的数据删除代码
时间: 2023-11-27 14:03:07 浏览: 140
以下是 Python 语言的代码实现,可以实现将 AIS 数据集中相同 MMSI 下相同经纬度的数据删除:
```python
import pandas as pd
# 读取 AIS 数据集
df = pd.read_csv('ais_data.csv')
# 针对每个 MMSI,将其按照时间顺序排序
df.sort_values(['MMSI', 'Time'], inplace=True)
# 遍历每个 MMSI 的数据,对于相邻两条数据,如果它们的经纬度相同,则删除后一条数据
for mmsi in df['MMSI'].unique():
# 获取当前 MMSI 的数据
mmsi_df = df[df['MMSI'] == mmsi]
# 遍历该 MMSI 的数据,删除相邻经纬度相同的数据
for i in range(1, len(mmsi_df)):
if mmsi_df.iloc[i]['Longitude'] == mmsi_df.iloc[i-1]['Longitude'] and mmsi_df.iloc[i]['Latitude'] == mmsi_df.iloc[i-1]['Latitude']:
mmsi_df.drop(mmsi_df.index[i], inplace=True)
# 更新原始数据集中该 MMSI 的数据
df[df['MMSI'] == mmsi] = mmsi_df
# 将处理后的数据保存为新的 CSV 文件
df.to_csv('ais_data_processed.csv', index=False)
```
以上代码中,`ais_data.csv` 是原始的 AIS 数据集文件,`ais_data_processed.csv` 是处理后的数据集文件。在代码实现中,首先通过 Pandas 库读取 AIS 数据集,然后针对每个 MMSI 将其按照时间顺序排序。接着遍历每个 MMSI 的数据,对于相邻两条数据,如果它们的经纬度相同,则删除后一条数据。最后将处理后的数据保存为新的 CSV 文件。
阅读全文