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

标签 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_坐标

Index_X Index_Y Added
0   0   100
1   1   500
2   2   900

我更熟悉像 SAS 这样的分析语言,一次处理一行数据,所以对我来说自然的方法是:

df_coord['Added'] = df_source.iloc[df_coord[Index_X][df_coord[Index_Y]]

当我尝试此操作时,我收到一个错误,我将其理解为 df_coord[Index_X] 并不引用同一行上的数据。我看过一些帖子,其中使用“axis=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

关于python - 使用其他 Dataframe 数据作为 iloc 输入从 Dataframe 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55730957/

相关文章:

在字符串中的特定字符序列之后选择字符的Pythonic方法

javascript - python json.dumps() 生成的字符串在转义双引号处使用 javascript JSON.parse() 加载时出错

python - MongoDB - 不存在字段的错误处理

python - 使用条件语句从 pandas df 列中减去标量给出 ValueError : The truth value of a Series is ambiguous

python - 如何在 Python 中编写一个在 20 个不同的 csv 文件上运行该函数的函数?

python - 无法将主机目录挂载到 docker 容器

python - Pandas 索引系列中的重复

Python - 使用 FOR 循环迭代 pandas DataFrame 时,使用 IF 语句查找字符串中的子字符串

python - 如何从 pandas DF 获取 `field_name:field_type` 的字典

python - 为什么 pandas read_csv 转换器的性能要慢得多并且是非矢量化的?