簡體   English   中英

從 Python 中的數據框創建列表,同時添加索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM