【问题标题】:Looking up values from one dataframe in specific row of another dataframe从另一个数据帧的特定行中的一个数据帧中查找值
【发布时间】:2017-11-18 11:31:20
【问题描述】:

我正在努力解决一些复杂的(对我而言)查找类型的问题。

我有一个如下所示的数据框 df1:

    Grade  Value
0     A     16
1     B     12
2     C      5

还有另一个数据框 (df2),其中来自 df1 的一列 ('Grade') 中的值形成索引:

     Tier 1  Tier 2  Tier 3
A      20      17      10
B      16      11       3
C       7       6       2

我一直在尝试为df1中的每一行编写一些代码,在df2中查找与'Grade'对应的行,找到df2中大于'Value'的最小值,并返回名称那一栏。

例如对于 df1 的第二行,它在 df2 中查找索引为“B”的行:16 是大于 12 的最小值,因此返回“Tier 1”。理想的输出是:

    Grade  Value  Tier
0     A     16    Tier 2 
1     B     12    Tier 1
2     C      5    Tier 2

到目前为止,我的新手,上周下载的 Python 尝试如下,它抛出了各种错误,甚至没有尝试返回列名。也很抱歉这个问题的微观性:任何帮助表示赞赏!

for i, row in input_df1.iterrows():
    Tier = np.argmin(df1['Value']<df2.loc[row,0:df2.shape[1]])

【问题讨论】:

    标签: pandas


    【解决方案1】:
    df2.loc[df1.Grade].eq(df1.Value, 0).idxmax(1)
    

    【讨论】:

      猜你喜欢
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 2021-01-08
      • 2020-10-17
      • 1970-01-01
      相关资源
      最近更新 更多