繁体   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