我有兩個數據框,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