मान लीजिए, मेरे पास कॉलम A, B और C के साथ एक पांडा डेटा फ्रेम df है। मैं कॉलम पर अंकगणितीय ऑपरेटर से पंक्ति-वार न्यूनतम गणना करना चाहता हूं, विशेष रूप से df['D']=min(df['A']+dF['B']*3, df['C']*np.sqrt(12))। मैंने संबंधित प्रश्न देखे हैं, और ऐसा प्रतीत होता है कि मुझे पहले min फ़ंक्शन में तर्कों के लिए दो कॉलम बनाने होंगे, और वे axis =1 के min का प्रदर्शन करेंगे। मैं सोच रहा था कि अस्थायी कॉलम बनाये बिना कोई और तरीका था या नहीं।

3
user6386155 1 जून 2020, 21:36

1 उत्तर

सबसे बढ़िया उत्तर

नए कॉलम बनाए बिना, आप apply का उपयोग कर सकते हैं:

df['D'] = df.apply(lambda x: min(x['A'] + x['B']*3, x['C']*np.sqrt(12), axis=1)

लेकिन यह सबसे अच्छा है बस करें:

df['D'] = np.mininum(df['A']+dF['B']*3, df['C']*np.sqrt(12))

जो दो मध्यवर्ती कॉलम/श्रृंखला बनाता है लेकिन वेक्टराइजेशन के लिए बहुत तेज़ धन्यवाद है।

1
Quang Hoang 1 जून 2020, 18:43