使用其他Dataframe数据作为iloc输入从Dataframe读取数据

时间:2019-04-17 15:15:50

标签: python pandas dataframe

我试图使用存储在另一个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”选项适用于各自的情况,但是我不知道如何将其应用于此情况。谢谢。

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