|
本帖最后由 剑心无痕 于 2017-12-12 09:59 编辑
import pandas as pd
d=pd.read_table('1.txt',sep=' +')
def find(row, df):
return df[(df['cluster'] == row['cluster']) & df['YN']].apply(lambda row, longitude, latitude:haversine(float(row['longitude']), float(row['latitude']), longitude, latitude), axis=1, longitude=float(row['longitude']), latitude=float(row['latitude'])).idxmin()
res = d.apply(find, axis=1, df=d)
res就是你要的结果吧
city
Beijing Beijing
Shanghai Shanghai
Guangzhou Guangzhou
Shenzhen Shenzhen
Chengdu Chengdu
Maanshan Xining
Nanchong Xining
Xining Xining
Xiaogan Xining
Qiqihaer Qiqihaer
dtype: object
|
|