3 सवाल: अगर हालत मैच, अजगर [डुप्लिकेट]

पर बनाया गया सवाल Sun, Mar 17, 2019 12:00 AM
    

इस प्रश्न का पहले से ही यहाँ एक उत्तर है:

    

मैं कॉलम "स्कोर" के लिए प्रत्येक पंक्ति में "1" जोड़ना चाहता हूं, जहां नीचे का कथन सत्य है,

import pandas as pd
import numpy as np


df = pd.read_csv(Path1 + 'Test.csv')
df.replace(np.nan, 0, inplace=True)
df[(df.Day7 >= 500)]

नमूना मूल्य

आउटपुट

    
1
  1. कृपया अपने पोस्ट में इनपुट और अपेक्षित आउटपुट के टेक्स्ट फॉर्म में नमूने जोड़ें और हमें इसके बाद बताएं।
    2019-03-17 12: 09: 03Z
  2. @ RavinderSingh13 ने नमूना मूल्य जोड़ा और आउटपुट विवरण की आवश्यकता है
    2019-03-17 12: 14: 05Z
  3. जैसा कि ऊपर उल्लेख किया गया है कि यह हमेशा TEXT रूप में इनपुट और अपेक्षित आउटपुट के नमूने जोड़ने की सिफारिश की जाती है, कृपया अपनी पोस्ट को संपादित करें और हमें तब बताएं।
    2019-03-17 12: 36: 12Z
    3 उत्तर                              3                         

    क्या आप निम्नलिखित प्रयास कर सकते हैं।

    df['score']=np.where(df['Day7']>=500,1,"")
    

    या ओपी की टिप्पणी के अनुसार (@ anky_91 के संवर्धित समाधान को यहां जोड़कर):

    np.where((df['Day7']>=500)&(df['Day7']<1000),1,"")
    

    जब हम df का मूल्य प्रिंट करते हैं, तो आउटपुट होगा।

        Cat          Day7    score
    0   Advertisir   145    
    1   Blogs        56 
    2   Business     92 
    3   Classfied    23 
    4   Continuin    110    
    5   Corporate    1974     1
    
        
    1
    2019-03-18 06: 28: 19Z
    1. हां, यह np.where के लिए भी एक अच्छा प्रयोग है। +1
      2019-03-17 13: 02: 53Z
    2. @ anky_91, प्रोत्साहन मित्र के लिए धन्यवाद, सभी महानों से सीखते हुए (आप भी उनमें से एक हैं) पांडा, चीयर्स
      2019-03-17 13: 56: 47Z
    3. हा हा मैं वह नहीं हूं जहां करीब हूं। : D हम सभी सीख रहे हैं। :) धन्यवाद
      2019-03-17 13: 57: 26Z
    4. @ MDSAQUIBNASIRKHAN np.where((df['Day7']>=500)&(df['Day7']<1000),1,"")
      का उपयोग करें
      2019-03-18 06: 06: 32Z
    5. @ MDSAQUIBNASIRKHAN उसी तरह जैसे आप np.where में करते हैं, लेकिन इस समय का उपयोग np.select
      2019-03-18 14: 18: 00Z

      आप वहां आधे रास्ते पर हैं। बस df.loc[mask, "Score"] = 1 का उपयोग करें:

      import numpy as np
      import pandas as pd
      
      df = pd.DataFrame({"Day7":np.random.rand(5)*1000,
                         "Score": np.random.rand(5)})
      print(df)
      df.loc[(df.Day7>=500), "Score"] = 1
      print(df)
      
          
      1
      2019-03-17 12: 32: 35Z
      df = df.assign(Score=0)
      df.Score = df.Day7 >= 500
      
          
      0
      2019-03-17 12: 10: 23Z
स्रोत रखा गया यहाँ