मैं एक नया डेटाफ्रेम बनाना चाहता हूं, पंक्तियों/कोशिकाओं को किसी अन्य डेटाफ्रेम के आधार पर एक साधारण गणना के साथ भर दिया जाता है। नीचे उदाहरण:

मूल डीएफ:

Col1   Col2   Col3   Col4   Col5
 5      3      4       2     10
 3      2      1       4      2 
 2      9      7       0      4

नया DF बनाएँ जहाँ Col1-5 में मान Col5 से घटाए जा रहे हैं, इस प्रकार वांछित DF है:

वांछित डीएफ

Col1   Col2   Col3   Col4   Col5
 5      7      6       8      0
-1      0      1      -2      0 
 2     -5     -3       4      0

जाहिर है सिर्फ जवाब पाने के लिए, मेरे मूल मूल्य में मैं सिर्फ नए कॉलम बना सकता हूं जहां मैं दो घटाता हूं, लेकिन मेरे पास बहुत सी पंक्तियां हैं और इस प्रकार मेरे डेटाफ्रेम का आकार दोगुना हो जाएगा - इसलिए मैं एक नया बनाना चाहता हूं अगर संभव हो तो।

1
dmd7 17 सितंबर 2020, 21:36

2 जवाब

सबसे बढ़िया उत्तर

sub के साथ axis से जांचें

out = df.sub(df['Col5'], axis=0)
Out[277]: 
   Col1  Col2  Col3  Col4  Col5
0    -5    -7    -6    -8     0
1     1     0    -1     2     0
2    -2     5     3    -4     0
2
BEN_YO 17 सितंबर 2020, 21:38

अपने तर्क शब्दशः का पालन करने के लिए, आप Col5 से Cols 1-5 को घटाने और DataFrame को फिर से बनाने के लिए प्रसारण का उपयोग कर सकते हैं।

import pandas as pd

pd.DataFrame(df['Col5'].to_numpy()[:, None] - df.to_numpy(),
             index=df.index,
             columns=df.columns)

   Col1  Col2  Col3  Col4  Col5
0     5     7     6     8     0
1    -1     0     1    -2     0
2     2    -5    -3     4     0
1
ALollz 17 सितंबर 2020, 22:06