क्या निम्नलिखित लिखने का एक और संक्षिप्त/पायथोनिक/पांडा-मूल तरीका है?
all_pos = ['NN', 'VB', 'ADJ']
for col in all_pos:
df_out['delta_'+col] = df_out[col] - mean_df[col]
df_out
और mean_df
में समान कॉलम नाम और इंडेक्स हैं, और मैं df_out
में नए कॉलम बनाना चाहता हूं जिसमें उनके बीच का अंतर हो।
तो df_out
में हो सकता है
Index NN VB ADJ
239 9 4 3
250 2 2 1
और df_mean
में हो सकता है
Index NN VB ADJ
239 3 1 8
250 7 4 3
मैं चाहता हूं कि df_out
ऐसा दिखे
Index NN VB ADJ delta_NN delta_VB delta_ADJ
239 9 4 3 6 3 -5
250 2 2 1 -5 -2 -2
1 उत्तर
एक साधारण घटाव का उपयोग करें (इसे प्रति कॉलम करने की आवश्यकता नहीं है) और इनपुट और आउटपुट को संक्षिप्त करें:
pd.concat([df_out,
(df_out - df_mean).add_prefix('delta_')
], axis=1)
या
df1.join((df1-df2).add_prefix('delta_'))
(df_out - df_mean)
को df_out.sub(df_mean)
भी लिखा जा सकता है
आउटपुट:
NN VB ADJ delta_NN delta_VB delta_ADJ
Index
239 9 4 3 6 3 -5
250 2 2 1 -5 -2 -2
नायब। मुझे लगता है कि "इंडेक्स" इंडेक्स है, अगर पहले नहीं चलता है:
df_out.set_index('Index', inplace=True)
df_mean.set_index('Index', inplace=True)
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
df1.join((df1-df2).add_prefix('delta_'))
का भी उपयोग कर सकते हैं।