[英]Creating a List from a Data Frame in Python, is Adding the Index as Well
從我創建的名稱列表(greater_three)中,我想在我的 DataFrame(新)中找到該列表中的所有名稱,並將 DataFrame 中的這些值“位置坐標”修改為新列表。 但是當我 append 時,我也在取一個索引值。
location = []
for name in new['DBA Name']:
if name in greater_three:
location.append(new['Location'])
else:
pass
Location
我的 output 列表(位置)應該是這樣的:
[[41.7770923949, -87.6060037796],
[41.7770923949, -87.6060037796],
[41.7770923949, -87.6060037796],
但我用這樣的索引得到它:
[0 (41.777092394888655, -87.60600377956905)
1 (41.78457591499572, -87.6547753761994)
2 (41.74427989606148, -87.5716351762223)
3 (41.69164609748754, -87.6422140544927)
另外,較小的問題,但我很好奇,它迭代了很多次(在我從數據框中刪除了所有重復的名稱之后),如下所示,它應該只有 26 個坐標的長度(25 個包括 0):
22 (41.901086765978654, -87.74854019856667)
23 (41.70774046981763, -87.64300283870763)
24 (41.75937734623751, -87.66111539963164)
25 (41.75655095611123, -87.61068980246957)
Name: Location, dtype: object,
0 (41.777092394888655, -87.60600377956905)
1 (41.78457591499572, -87.6547753761994)
2 (41.74427989606148, -87.5716351762223)
...
23 (41.70774046981763, -87.64300283870763)
24 (41.75937734623751, -87.66111539963164)
25 (41.75655095611123, -87.61068980246957)
Name: Location, dtype: object,
0 (41.777092394888655, -87.60600377956905)
1 (41.78457591499572, -87.6547753761994)
2 (41.74427989606148, -87.5716351762223)
3 (41.69164609748754, -87.6422140544927)
對於每個名稱,您只是將整個列重新附加到列表中,而不僅僅是條目對應於循環中的每個名稱。 您可以使用.loc
並過濾名稱匹配的位置來解決此問題。 您還應該將new['DBA Name']
中的.drop_duplicates
復制到 go 以避免多次附加相同的內容。 還有你的else: pass
不是必需的。 我認為您想要的是以下內容,但很難說,因為我不知道您的new['Location']
列是什么樣的:
location = []
for name in new['DBA Name'].drop_duplicates():
if name in greater_three:
location.append(new.loc[new['DBA Name'] == name, 'Location'].to_list())
location
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.