矢量化 Pandas - 使用另一列将列分配给数组值
Vectorising Pandas - Assigning Column to Array Value using another Column
我有一个 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
有没有办法不用手动遍历行就可以做到这一点?
FYI 数组如下所示:
[['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'.
的值将纬度坐标 return 到 Dataframe 中的列
我正在寻找的输出:
df1 = pd.DataFrame({'ExistingColumn': [0,2,3,1,2],'NewColumn':[-34,-36.425,-36.425,-34,-36.425]})
如果 2d 数组是 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
我有一个 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
有没有办法不用手动遍历行就可以做到这一点?
FYI 数组如下所示:
[['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'.
的值将纬度坐标 return 到 Dataframe 中的列我正在寻找的输出:
df1 = pd.DataFrame({'ExistingColumn': [0,2,3,1,2],'NewColumn':[-34,-36.425,-36.425,-34,-36.425]})
如果 2d 数组是 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