मेरे पास एक श्रेणी परिवर्तक और कुछ संख्या चर के साथ एक पांडा डेटा फ्रेम है। कुछ इस तरह: आईडी द्वाराश्रेणी के आधार पर पांडा डेटाफ्रेम पंक्तियों को कॉलम में कैसे परिवर्तित करें?
df
Out[15]:
count id module
0 5 2 payroll
1 53 2 general
2 35 5 tax
मैं परिवर्तित करना चाहते हैं (स्थानांतरित सही शब्द है?) कॉलम और समूह में मॉड्यूल चर:
ls = [{'count':5, 'module':'payroll', 'id':2}, {'count': 53, 'module': 'general','id':2}, {'id': 5,'count': 35, 'module': 'tax'}, ]
df = pd.DataFrame.from_dict(ls)
df इस तरह दिखता है। तो कुछ की तरह:
df['payroll_count'] = df.id.apply(lambda x: df[df.id==x][df.module=='payroll'])
बहरहाल, यह कई कमियां से ग्रस्त:
महंगे, और बहुत अधिक समय लगता है
इस के लिएgeneral_count id payroll_count tax_count 0 53.0 2 5.0 NaN 1 NaN 5 NaN 35.0
एक दृष्टिकोण को लागू करने का उपयोग किया जाएगा
कलाकृतियों और खाली डेटाफ्रेम टी बनाता है टोपी साफ करने की जरूरत है।
मैं समझ pandas groupby साथ इस लक्ष्य को हासिल करने के लिए एक बेहतर तरीका नहीं है, लेकिन और अधिक कुशलता से यह एक ही आपरेशन के लिए एक रास्ता नहीं मिल रहा। कृपया मदद करे।
अपने वांछित उत्पादन में , पहली पंक्ति में 'id' 2 होना चाहिए, है ना? – IanS
हाँ। इसे ठीक किया .. इंगित करने के लिए धन्यवाद .. @jezrael ने भी एक अच्छा जवाब दिया है। –