1

我有一个 Pandas 数据框,其中包含一些与位置数据相匹配的值。我想使用我的一列中的值从二维数组中获取位置数据,使用列数据作为数组索引。

import pandas as pd
df1 = pd.DataFrame({'ExistingColumn': [0,2,3,1,2,3,0,0,2,3]})
df1['NewColumn'] = array[df1['ExistingColumn']][1]
TypeError: list indices must be integers or slices, not Series

有没有办法在不手动迭代行的情况下做到这一点?

仅供参考,数组如下所示:

[['2_-34.0,140.95.kml', -34.0, -36.425, 143.575, 140.95], 
['2_-34.0,143.575.kml', -34.0, -36.425, 146.2, 143.575], 
['2_-36.425,140.95.kml', -36.425, -38.849999999999994, 143.575, 140.95], 
['2_-36.425,143.575.kml', -36.425, -38.849999999999994, 146.2, 143.575]]

我需要根据“ExistingColumn”的值将经纬度坐标返回到 Dataframe 中的列。

我正在寻找的输出: df1 = pd.DataFrame({'ExistingColumn': [0,2,3,1,2],'NewColumn':[-34,-36.425,-36.425,-34,-36.425]})

4

1 回答 1

0

如果二维数组的arr长度与列相同,则使用索引:

arr = np.array([['2_-34.0,140.95.kml', -34.0, -36.425, 143.575, 140.95], 
['2_-34.0,143.575.kml', -34.0, -36.425, 146.2, 143.575], 
['2_-36.425,140.95.kml', -36.425, -38.849999999999994, 143.575, 140.95], 
['2_-36.425,143.575.kml', -36.425, -38.849999999999994, 146.2, 143.575]])


df1 = pd.DataFrame({'ExistingColumn': [0,2,3,1,2,3,0,0,2,3]})

df1['NewColumn'] = arr[df1['ExistingColumn'], 1]
print (df1)
   ExistingColumn NewColumn
0               0     -34.0
1               2   -36.425
2               3   -36.425
3               1     -34.0
4               2   -36.425
5               3   -36.425
6               0     -34.0
7               0     -34.0
8               2   -36.425
9               3   -36.425
于 2020-05-19T07:27:14.337 回答