मेरे पास अलग-अलग पंक्ति लंबाई के साथ दो डेटाफ्रेम हैं, समान कॉलम हैं लेकिन तदनुसार व्यवस्थित नहीं हैं। मैं df1 से df2 घटाना चाहता हूं और फिर परिणाम को df1 से विभाजित करना चाहता हूं (मूल रूप से अंत में प्रतिशत प्राप्त करने के लिए)।
डीएफ1
Index Bircher Club Quiche
2019-1-18 16 1 4
2019-1-19 4 9 6
2019-1-28 8 1 6
2019-1-29 4 7 6
2019-1-20 8 1 6
डीएफ2
Index Bircher Quiche Club
2019-1-10 15 1 3
2019-1-18 4 1 1
2019-1-20 4 2 6
2019-1-26 2 1 5
2019-1-25 4 1 2
परिणाम: दोनों डेटाफ़्रेम में केवल दिनांक 2019-1-18 और 2019-1-20 दिखाई देते हैं और उनका उपयोग किया जा सकता है। तब Df3 को बस इस गणित सूत्र (Df1-DF2)/Df1 . के साथ व्यक्त किया जाता है
Index Bircher Club Quiche
2019-1-18 75% 0% 75%
2019-1-20 50% -100% 0%
2 जवाब
बस मेरे सिर के ऊपर से:
# Join the tables to find common rows
merged_df = df1.join(df2, lsuffix='Left', rsuffix='Right', how='inner')
# Calculate the required percentages, column by column
for col in df1.columns:
merged_df[col] = (merged_df[col + 'Left'] - merged_df[col + 'Right']) / merged_df[col + 'Left']
# Optionally delete all other columns except df1.columns
merged_df = merged_df.loc[:, df1.columns.values]
यह मानता है कि आप सभी स्तंभों के प्रतिशत की गणना करना चाहते हैं।
आप Groupby और nth . का भी उपयोग कर सकते हैं
x = pd.concat([df1,df2]).groupby(level=0)
fg = ((x.nth(0) - x.nth(-1) )/x.nth(0))*100
fg[fg!= 0].dropna()
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।