কিউজিআইএস ফিল্ড ক্যালকুলেটর (গুলি) এ শর্তযুক্ত বিবৃতিগুলির সিনট্যাক্স


12

আমার একটি শেফফাইল রয়েছে যা আমার সংশোধন করা দরকার। "ক", "বি" এবং "সি" বৈশিষ্ট্যগুলির সাথে একটি কলাম "CLASS" রয়েছে। আমার "এ" কে "1", "বি" কে "2" এবং "সি" কে "3" তে পরিবর্তন করা দরকার। আমি case whenফাংশন দিয়ে চেষ্টা করেছি । একটি ক্ষেত্রে এটি কোনও সমস্যা নয় তবে এটি টানা 3 দিয়ে কীভাবে কাজ করবে?

FieldCalculatorফাংশন দিয়ে কোনও মডেল তৈরি করা কি সম্ভব ?


আমার ধারণা আমি এটি বের করেছিলাম! এটা কী ঠিক?

CASE
  WHEN "VSt_K" IS 'E' THEN '5'
  WHEN "VSt_K" IS 'A' THEN '1'
  WHEN "VSt_K" IS 'B' THEN '2'
  WHEN "VSt_K" IS 'C' THEN '3'
END

তবে আমি এটি মডেলার FieldCalculatorফাংশনে ব্যবহার করতে পারি না ...

উত্তর:


14

আপনি যদি স্ট্রিং প্রকারের ক্ষেত্র গণনা করে থাকেন তবে এটি সঠিক বাক্য গঠন:

CASE 
  WHEN "VSt_K" = 'A' THEN '1'
  WHEN "VSt_K" = 'B' THEN '2'
  WHEN "VSt_K" = 'C' THEN '3'
END

পরিবর্তে, যদি এটি পূর্ণসংখ্যার প্রকারের হয়:

CASE 
  WHEN "VSt_K" = 'A' THEN 1
  WHEN "VSt_K" = 'B' THEN 2
  WHEN "VSt_K" = 'C' THEN 3
END

সম্পাদনা

Advanced Python Field Calculatorইন প্রসেসিং টুলবক্সের বাক্য গঠনটি স্ট্যান্ডার্ড কিউজিআইএস ফিল্ড ক্যালকুলেটরের চেয়ে আলাদা। সুতরাং আপনার পাইথন ব্যবহার করে আপনার শর্তসাপেক্ষ এক্সপ্রেশন লিখতে হবে:

গ্লোবাল এক্সপ্রেশন:

def getValue(x):
    if x == 'A':
        value = '1'
    elif x == 'B':
        value = '2'
    elif x == 'C':
        value = '3'
    # ...and so on
    return value

সূত্র:

value = getValue( <VSt_K> )

দ্রষ্টব্য:Advanced Python Field Calculator মডেলারটি ব্যবহার করা সম্ভব , তবে আপনাকে সূত্রের ক্ষেত্র (গুলি) সরাসরি তার সূত্রে উল্লেখ করতে হবে কারণ এই অ্যালগরিদমটি ব্যবহার করার সময় ক্ষেত্রগুলিকে ইনপুট পরামিতি হিসাবে ব্যবহার করা যায় না। বিকল্পভাবে, আপনি ডিফল্ট সূত্রযুক্ত একটি ইনপুট স্ট্রিং প্যারামিটার নির্ধারণ করতে পারেন। আপনি যখন মডেলটি চালান, আপনি অবশেষে সূত্র ইনপুট প্যারামিটারে উত্স ক্ষেত্র (গুলি) পরিবর্তন করতে পারেন, এইভাবে অন্য ডেটার সাথে মডেলটিকে পুরোপুরি পুনরায় ব্যবহারযোগ্য করে তুলবেন।


ধন্যবাদ, এটি কাজ করে! তবে আপনি কী জানেন যে আমি কিভাবে মডেলারে ফিল্ড ক্যালকুলেটরটি (দেখানো সিনট্যাক্স সহ) ব্যবহার করতে পারি?
পিম্পেল

আমি কীভাবে এটি করব তা ব্যাখ্যা করে উত্তরে আরও বিশদ যুক্ত করেছি। আশাকরি এটা সাহায্য করবে.
আন্তোনিও ফ্যালকিয়ানো

ধন্যবাদ! আমি চেষ্টা করেছি তবে একটি সমস্যা আছে। এখন ফলাফলটি হ'ল আমি সবেমাত্র "সি" "3" তে পরিবর্তিত হয়েছি। আমি যখন 'এলিফ x ==' ডি ': মান =' 4 'স্ট্রিং যুক্ত করব তখন আমি কেবল "ডি" কে "4" এ পরিবর্তিত করব।
পিম্পেল

আপনি যদি স্ক্র্যাচ থেকে কোনও নতুন ক্ষেত্র গণনা করেন তবে এটি প্রত্যাশার মতো কাজ করা উচিত।
আন্তোনিও ফ্যালকিয়ানো

আমি জানি না তবে আমি যখন এখন আমার মডেলটি চালাচ্ছি (কিছুই পরিবর্তন করেনি) তখন এটি বলে: ... ফেরতের মান, ফরমুলা = মান = getValue () অ্যালগরিদম কার্যকর করতে ব্যর্থ ত্রুটি 0 স্থানীয় ভেরিয়েবল 'মান' নিয়োগের আগে রেফারেন্স করা আরও তথ্যের জন্য লগ দেখুন
পিম্পেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.