我试图使用存储在另一个df中的iloc坐标从现有df中获取值,然后将该值存储在第二个df中。
df_source(源):
Category1 Category2 Category3
Bucket1 100 200 300
Bucket2 400 500 600
Bucket3 700 800 900
df_coord(坐标):
Index_X Index_Y
0 0
1 1
2 2
想要:
df_coord
Index_X Index_Y Added
0 0 100
1 1 500
2 2 900
我对SAS这样的分析语言更为熟悉,SAS一次只处理一行数据,所以自然的做法是:
df_coord['Added'] = df_source.iloc[df_coord[Index_X][df_coord[Index_Y]]
尝试此操作时出现错误,我理解为df_coord [Index_X]不引用同一行上的数据。我已经看到一些帖子,其中使用“ axis = 1”选项适用于各自的情况,但是我不知道如何将其应用于此情况。谢谢。
答案 0 :(得分:1)
您可以索引基础的ndarray,即使用values
中的列作为第一轴和第二轴来调用df_coord
方法:
df_coord['Added'] = df_source.values[df_coord.Index_X, df_coord.Index_Y]
Index_X Index_Y Added
0 0 0 100
1 1 1 500
2 2 2 900