আপনি এনপি.হোহার ব্যবহার করতে পারেন । যদি condকোনও বুলিয়ান অ্যারে হয় Aএবং Bযদি অ্যারে হয় তবে
C = np.where(cond, A, B)
সি Aযেখানে condসত্য, এবং Bকোথায় condমিথ্যা তার সমান হতে সংজ্ঞায়িত করে ।
import numpy as np
import pandas as pd
a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
df['que'] = np.where((df['one'] >= df['two']) & (df['one'] <= df['three'])
, df['one'], np.nan)
উৎপাদনের
one two three que
0 10 1.2 4.2 10
1 15 70 0.03 NaN
2 8 5 0 NaN
আপনার যদি একাধিক শর্ত থাকে তবে তার পরিবর্তে আপনি np.select ব্যবহার করতে পারেন । উদাহরণস্বরূপ, যদি আপনি চান df['que']সমান df['two']যখন df['one'] < df['two'], তারপর
conditions = [
(df['one'] >= df['two']) & (df['one'] <= df['three']),
df['one'] < df['two']]
choices = [df['one'], df['two']]
df['que'] = np.select(conditions, choices, default=np.nan)
উৎপাদনের
one two three que
0 10 1.2 4.2 10
1 15 70 0.03 70
2 8 5 0 NaN
যদি আমরা ধরে নিতে পারি যে df['one'] >= df['two']কখন df['one'] < df['two']মিথ্যা, তবে শর্ত এবং পছন্দগুলি সরল করা যেতে পারে
conditions = [
df['one'] < df['two'],
df['one'] <= df['three']]
choices = [df['two'], df['one']]
( এনএএন থাকলে df['one']বা ধরে নেওয়া অনুমানটি সত্য নাও হতে df['two']পারে))
মনে রাখবেন যে
a = [['10', '1.2', '4.2'], ['15', '70', '0.03'], ['8', '5', '0']]
df = pd.DataFrame(a, columns=['one', 'two', 'three'])
স্ট্রিং মান সহ একটি ডেটা ফ্রেম সংজ্ঞায়িত করে। যেহেতু এগুলি সংখ্যাসূচক দেখাচ্ছে, আপনি সেই স্ট্রিংগুলিকে ফ্লোটে রূপান্তর করা থেকে ভাল:
df2 = df.astype(float)
স্ট্রিংগুলি চরিত্র অনুসারে চরিত্রের তুলনা করে, যদিও ফ্লোটগুলি সংখ্যার সাথে তুলনা করা হয়, এর ফলে ফলাফলগুলি পরিবর্তন হয়।
In [61]: '10' <= '4.2'
Out[61]: True
In [62]: 10 <= 4.2
Out[62]: False
ifবিবৃতি হলে মানটি কী হওয়া উচিতFalse?