используйте pandas, чтобы найти способ рассчитать минимальное расстояние для каждого расстояния pci - PullRequest
0 голосов
/ 20 апреля 2020

У меня была датафрейм, рассчитанный с помощью DistanceMetri c из sklearn, данные показывают каждое расстояние между остальными, я сделал multiIndex для строк и столбцов, потому что я собираюсь сгруппировать данные по EARFCN, а затем по PCI, наконец, получил каждый Минимальное расстояние использования PCI.

Посмотрите, как я сделал мой disMatrix:

from sklearn.neighbors import DistanceMetric
from math import radians
import pandas as pd
import numpy as np
# noted pandas has to be > 0.24
print(pd.__version__, np.__version__)

df = pd.read_csv('site_info.csv')
siteDataFrame = df.loc[:, ~df.columns.str.contains('Unnamed')]
dist = DistanceMetric.get_metric('haversine')
def calMatrix(celldf):
  celldf['Longitude'] = np.radians(celldf['Longitude'])
  celldf['Latitude'] = np.radians(celldf['Latitude'])
  # Let's make the Matrix a Multi index & colums DataFrame
  multi_index = pd.MultiIndex.from_frame(celldf[[ 'PCI','CellName']])
  # multi_columns = pd.MultiIndex.from_frame(celldf[['CellName', 'PCI']])
  distMatrix = pd.DataFrame(dist.pairwise(celldf[['Latitude','Longitude']].to_numpy())*6371000, 
                            columns=multi_index.unique(), index=multi_index.unique())

  return distMatrix
disMatrix = siteDataFrame.groupby('DLearfcn').apply(calMatrix)

disMatrix.head (): disMatrix.head ()

disMatrix.index: disMatrix.index

столбцы совпадают с EARFCN, PCI и каждой ячейкой в ​​индексе.

, поэтому я хочу получить результат чтобы быть похожим на каждую группу EARFCN, найдите минимальное расстояние (кроме 0 и NaN) каждого PCI и соответствующих ячеек.

...