我有两个数据框,df和df2,它们是通讯组。 现在基于第一个数据框df,我想在一行中得到3个最小值,并返回对应列的名称(在本例中为“X”或“Y”或“Z”或“T”)。所以我可以得到新的数据帧df3。获取每行三个最小值并返回相应的列名称
df = pd.DataFrame({
'X': [21, 2, 43, 44, 56, 67, 7, 38, 29, 130],
'Y': [101, 220, 330, 140, 250, 10, 207, 320, 420, 50],
'Z': [20, 128, 136, 144, 312, 10, 82, 63, 42, 12],
'T': [2, 32, 4, 424, 256, 167, 27, 38, 229, 30]
}, index=list('ABCDEFGHIJ'))
df2 = pd.DataFrame({
'X': [0.5, 0.12,0.43, 0.424, 0.65,0.867,0.17,0.938,0.229,0.113],
'Y': [0.1,2.201,0.33,0.140,0.525,0.31,0.20,0.32,0.420,0.650],
'Z': [0.20,0.128,0.136,0.2144,0.5312,0.61,0.82,0.363,0.542,0.512],
'T':[0.52, 0.232,0.34, 0.6424, 0.6256,0.3167,0.527,0.38,0.4229,0.73]
},index=list('ABCDEFGHIJ'))
除此之外,我想另一个数据帧DF4这是记者从DF3 DF2中,这意味着在DF行[“A”(2,20,21)是3最小值,所以在DF4行['A'],我想从df2获得(0.52,0.2,0.5)。
谢谢。
什么是DF和DF2以及如何之间的关系是它涉及创建DF3? –
df和df2不相关。在创建df3时,我们应该只使用df。 – Hong
Numpy解决方案约。接受答案的速度提高10倍,在我的答案中查看时间。 – jezrael