मेरा डीएफ:

No  A   B   C  D
1   1   1   0  1
2   1   1   1  0
3   1   0   1  1
4   1   1   1  1

मैं ए या बी या सी या डी करना चाहता हूं और परिणाम को कॉलम में लिखना चाहता हूं।

No  A   B   C  D Result
1   1   1   0  1 1
2   1   1   1  0 1
3   1   0   1  1 1
4   1   1   1  1 1
...

तो विचार यह है कि परिणाम '1' है, भले ही ए, बी, सी या डी में एक '1' मौजूद हो।

1
hakuna_code 10 पद 2019, 13:02

4 जवाब

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

उपयोग करने का प्रयास करें:

df['Result'] = df.drop('No', axis=1).max(1)
print(df)

आउटपुट:

   No  A  B  C  D  Result
0   1  1  1  0  1       1
1   2  1  1  1  0       1
2   3  1  0  1  1       1
3   4  1  1  1  1       1
1
U11-Forward 10 पद 2019, 13:06

अजीब तरह से, किसी ने भी साधारण | ऑपरेटर के उपयोग का उल्लेख नहीं किया।

आपके प्रश्न का उत्तर

df['Result'] = df['A'] | df['B'] | df['C'] | df['D']

इसी तरह, अगर आप AND जैसे अन्य ऑपरेशन करना चाहते हैं

df['Result'] = df['A'] & df['B'] & df['C'] & df['D']
1
Rohit 10 पद 2019, 13:41

मजेदार तरीकों की सूची में जोड़ने के लिए:

df_a['Result'] = df_a.eval('A + B + C').astype(bool)

फायदा यह है कि eval मेमोरी में इंटरमीडिएट टेबल नहीं बनाता है। यदि आपको बूल के बजाय स्पष्ट int की आवश्यकता है, तो आप निश्चित रूप से इसे कास्ट कर सकते हैं:

df_a['Result'] = df_a.eval('A + B + C').astype(bool).astype(int)
1
Oleg O 10 पद 2019, 13:37