import pandas as pd
dict = {'Origin Region': [1.0, 2.0, 3.0, 4.0, 5.0, 1.0, 2.0, 5.0],
'Origin Latitude': [-36.45875, -36.24879, -36.789456, -38.14789, -36.15963, -36.159455, -36.2345, -36.12745],
'Origin Longitude': [145.14563, 145.15987, 145.87456, 146.75314, 145.75483, 145.78458, 145.123654, 145.11111]}
df = pd.DataFrame(dict)
centres_dict = {'Origin Region': [1.0, 2.0, 3.0, 4.0, 5.0],
'Origin Latitude': [-36.25361, -36.78541, -36.74859, -38.74123, -36.14538],
'Origin Longitude': [145.12345, 145.36241, 145.12365, 146.75314, 145.75483]}
centres_df = pd.DataFrame(centres_dict)
grouped_region = df.groupby('Origin Region')
for region, region_group in grouped_region:
outliers = region_group[['Origin Latitude', 'Origin Longitude']].where((region_group['Origin Latitude'] < -36.15))
outliers.dropna(inplace=True)
print(outliers)
if(~outliers.empty):
for index, outlier_value in outliers.iterrows():
for another_index, centre_value in centres_df.iterrows():
a = outlier_value['Origin Longitude']
b = outlier_value['Origin Latitude']
c = centres_df['Origin Longitude']
d = centres_df['Origin Latitude']
#find distance using the above and then find minimum distance
Я пытаюсь перебрать каждую группу кадра данных (df), затем отфильтровать значения в каждой группе на основе некоторого условия и выполнить вычисление расстояния между каждым из этих отфильтрованных значений (выбросов) и всеми значениями вдругой фрейм данных (centres_df).
У меня есть данные в фреймах данных, должен ли я преобразовать их в массивы, а затем использовать scipy cdist для вычисления расстояний?или просто использовать цикл и использовать мою собственную функцию расчета расстояния?Я не уверен, что это лучший способ сделать это.Или, может быть, использовать применить и вызвать мою собственную функцию расстояния?