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