【发布时间】: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