所以我有一个数据框,基本上每个单元格中都有一个字典。我的索引值是类似[[10,0),(10,),(30,0),(25,2)]的元组列表,并且列只是从1开始编号,然后从此处开始递增。
我想尝试查找索引值和列号,并使其仅返回存储在该单元格中的字典,但保持字典数据类型。我尝试过:
df.loc[[(10,0),(10,),(30,0),(25,2)],[1]].iloc[0]
但是看起来那只是返回一个系列,而我只是得到系列中的第一项。
编辑:
我试图使它尽可能简单,但我意识到这可能会更加令人费解。
我有两个数据。 1包含值,2包含结果字典。我想从df 1中的每一列取最高值,并返回位于df2中相同索引值的相应字典。
因此,例如:第1列的最高值为.3818,位于ix val: [(10,),(3,),(0,),(0,10)] 所以id喜欢只返回存储在df2中该索引值的第1列中的字典,所以: {“总净利润”:1449.99999999996,“最大博士数。”
这是df1和df2的样子:
1 2 ... 4 5
[(10,), (2,), (0,), (0, 10)] -0.712821 -0.716000 ... -0.392000 -0.952703
[(10,), (3,), (0,), (0, 10)] 0.381818 0.209091 ... 1.427273 0.115578
[(15,), (2,), (0,), (0, 10)] -0.929577 -0.527426 ... 0.033755 -0.219409
[(15,), (3,), (0,), (0, 10)] -1.000000 -0.768392 ... -0.316076 -0.662125
[(20,), (2,), (0,), (0, 10)] -0.863118 -0.535948 ... -0.513072 -0.735294
1 ... 5
[(10,), (2,), (0,), (0, 10)] {'Total Net Profit': -750.0000000001708, 'Max ... ... {'Total Net Profit': -9900.00000000016, 'Max D...
[(10,), (3,), (0,), (0, 10)] {'Total Net Profit': 1449.99999999996, 'Max Dr... ... {'Total Net Profit': -7400.000000000018, 'Max ...
[(15,), (2,), (0,), (0, 10)] {'Total Net Profit': 200.00000000003115, 'Max ... ... {'Total Net Profit': -3800.0000000000255, 'Max...
[(15,), (3,), (0,), (0, 10)] {'Total Net Profit': -1400.0000000000769, 'Max... ... {'Total Net Profit': -7150.000000000035, 'Max ...
[(20,), (2,), (0,), (0, 10)] {'Total Net Profit': -400.0000000001336, 'Max ... ... {'Total Net Profit': -3500.0000000000146, 'Max...
答案 0 :(得分:0)
您需要pd.DataFrame.idxmax
,请尝试:
df2.loc[df1['1'].idmax(),1]