pandas 0.23 - DataFrame.assign()

pandas.DataFrame.assign




pandas

pandas.DataFrame.assign

DataFrame.assign(**kwargs) [source]

मूल स्तंभ में जोड़े गए नए स्तंभों के साथ एक नई वस्तु (एक प्रति) लौटाते हुए, एक DataFrame में नए कॉलम असाइन करें। मौजूदा कॉलम जो फिर से असाइन किए गए हैं, उन्हें ओवरराइट किया जाएगा।

पैरामीटर:

kwargs : कीवर्ड, मूल्य जोड़े

कीवर्ड कॉलम नाम हैं। यदि मान कॉल करने योग्य हैं, तो उन्हें DataFrame पर गणना की जाती है और नए कॉलम को सौंपा जाता है। कॉल करने योग्य इनपुट को परिवर्तित नहीं करना चाहिए DataFrame (हालाँकि पांडा इसकी जाँच नहीं करता है)। यदि मान कॉल करने योग्य नहीं हैं, (उदाहरण के लिए एक श्रृंखला, स्केलर, या सरणी), तो वे बस असाइन किए जाते हैं।

यह दिखाता है:

df : DataFrame

सभी मौजूदा स्तंभों के अतिरिक्त नए स्तंभों के साथ एक नया डेटाफ़्रेम।

टिप्पणियाँ

एक ही assign भीतर कई कॉलम assign करना संभव है। पायथन 3.6 और उससे अधिक के लिए, बाद में '** कवर्स' में आइटम 'डीएफ' में नए बनाए गए या संशोधित स्तंभों को संदर्भित कर सकते हैं; वस्तुओं की गणना और क्रम में 'df' में दी गई हैं। पायथन 3.5 और नीचे के लिए, कीवर्ड तर्कों का क्रम निर्दिष्ट नहीं है, आप नए बनाए गए या संशोधित स्तंभों का संदर्भ नहीं दे सकते। सभी वस्तुओं की गणना पहले की जाती है, और फिर वर्णानुक्रम में निर्दिष्ट की जाती है।

संस्करण 0.23.0 में परिवर्तित: पायथन 3.6 के लिए और बाद में कीवर्ड तर्क क्रम बनाए रखा गया है।

उदाहरण

>>> df = pd.DataFrame({'A': range(1, 11), 'B': np.random.randn(10)})

जहां मान एक कॉल करने योग्य है, df पर मूल्यांकन किया गया है:

>>> df.assign(ln_A = lambda x: np.log(x.A))
    A         B      ln_A
0   1  0.426905  0.000000
1   2 -0.780949  0.693147
2   3 -0.418711  1.098612
3   4 -0.269708  1.386294
4   5 -0.274002  1.609438
5   6 -0.500792  1.791759
6   7  1.649697  1.945910
7   8 -1.495604  2.079442
8   9  0.549296  2.197225
9  10 -0.758542  2.302585

जहां मान पहले से मौजूद है और डाला गया है:

>>> newcol = np.log(df['A'])
>>> df.assign(ln_A=newcol)
    A         B      ln_A
0   1  0.426905  0.000000
1   2 -0.780949  0.693147
2   3 -0.418711  1.098612
3   4 -0.269708  1.386294
4   5 -0.274002  1.609438
5   6 -0.500792  1.791759
6   7  1.649697  1.945910
7   8 -1.495604  2.079442
8   9  0.549296  2.197225
9  10 -0.758542  2.302585

जहां कीवर्ड तर्क एक दूसरे पर निर्भर करते हैं

>>> df = pd.DataFrame({'A': [1, 2, 3]})
>>> df.assign(B=df.A, C=lambda x:x['A']+ x['B'])
    A  B  C
 0  1  1  2
 1  2  2  4
 2  3  3  6