[英]Iterating over Dataframe columns
我有一個 dataframe 有一堆列看起來像這樣
City1, City2, Cord_City1
LA LA 10,12
LA SF 10,12
LA SD 10,12
SF LA 11,13
SD SF 12,14
我有城市 1 的所有坐標值,城市 2 中的所有城市都包含在城市 1 內
現在我想使用我已經擁有的坐標制作一列坐標 City 2
所以新表應該是這樣的(SF coord = 11,13 and SD Coord = 12,14)
City1, City2, Cord_City1, Cord_City2
LA LA 10,12 10,12
LA SF 10,12 11,13
LA SD 10,12 12,14
SF LA 11,13 10,12
SD SF 12,14 11,13
我將如何遍歷 city2 列然后遍歷 city 1 列並從 cord_city1 返回坐標?
使用 City1 和 Cord_City1 作為字典,這樣:
key = Cord and Value = City
dict_cords = pd.Series(df.Cord_City1.values,index=df.City1).to_dict()
你得到:
{'LA': '10,12', 'SF': '11,13', 'SD': '12,14'}
創建 Cord_City2:
df['Cord_City2'] = df['City2'].map(dict_cords)
你會得到想要的結果:
City1 City2 Cord_City1 Cord_City2
0 LA LA 10,12 10,12
1 LA SF 10,12 11,13
2 LA SD 10,12 12,14
3 SF LA 11,13 10,12
4 SD SF 12,14 11,13
我們可以做單行
df['CordCity2'] = df.City2.map(dict(zip(df.City1,df.CordCity1)))
df
Out[223]:
City1 City2 CordCity1 CordCity2
0 LA LA 10,12 10,12
1 LA SF 10,12 11,13
2 LA SD 10,12 12,14
3 SF LA 11,13 10,12
4 SD SF 12,14 11,13
這應該這樣做:
df.merge(df[['City1','Cord_City1']].drop_duplicates().rename(columns = {'Cord_City1':'Cord_City2','City1':'City2'}),
left_on = 'City2', right_on = 'City2', how = 'left')
City1 City2 Cord_City1 Cord_City2
0 LA LA 10,12 10,12
1 LA SF 10,12 11,13
2 LA SD 10,12 12,14
3 SF LA 11,13 10,12
4 SD SF 12,14 11,13
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.