शीर्षक थोड़ा उलझन में है लेकिन मैं अपनी समस्या को समझाने के लिए अपनी पूरी कोशिश करूंगा। मैं 2 पांडा dataframes, ए और बी है:किसी डेटाफ्रेम से किसी डेटाफ्रेम से मूल्यों की तुलना किसी अन्य डेटाफ्रेम में कॉलम से मूल्यों के साथ और तीसरे कॉलम से डेटा प्राप्त करना
>> print a
id | value
1 | 250
2 | 150
3 | 350
4 | 550
5 | 450
>> print b
low | high | class
100 | 200 | 'A'
200 | 300 | 'B'
300 | 500 | 'A'
500 | 600 | 'C'
मैं एक नया स्तंभ तालिका एक में कक्षा कहा जाता है कि तालिका ख के अनुसार मूल्य के वर्ग में शामिल है बनाना चाहते हैं। यहाँ परिणाम मैं चाहता हूँ:
>> print a
id | value | class
1 | 250 | 'B'
2 | 150 | 'A'
3 | 350 | 'A'
4 | 550 | 'C'
5 | 450 | 'A'
मैं निम्नलिखित कोड है कि एक तरह से लिखा है जो मैं चाहता है:
a['class'] = pd.Series()
for i in range(len(a)):
val = a['value'][i]
cl = (b['class'][ (b['low'] <= val) \
(b['high'] >= val) ].iat[0])
a['class'].set_value(i,cl)
समस्या है, यह 10 या तो की टेबल लंबाई के लिए त्वरित है, लेकिन मैं मैं ए और बी दोनों के लिए 100,000+ के टेबल आकार के साथ ऐसा करने की कोशिश कर रहा हूं। क्या पांडा में कुछ फ़ंक्शन/विशेषता का उपयोग करके ऐसा करने का कोई तेज तरीका है?
मेरे लूपिंग योजना से बहुत तेज़ है! इस समाधान का भी परीक्षण करेंगे! – rbae