পান্ডাস ডেটাফ্রেমে অন্যান্য কলামের ভিত্তিতে অনুপস্থিত মানটি কীভাবে পূরণ করবেন?


19

ধরুন আমার কাছে একটি 5 * 3 ডেটা ফ্রেম রয়েছে যার মধ্যে তৃতীয় কলামে মান অনুপস্থিত

1 2 3
4 5 NaN
7 8 9
3 2 NaN
5 6 NaN

আমি অনুপস্থিত মান ভিত্তিক নিয়মের যে মানটি প্রথম উত্পাদন দ্বিতীয় কলামের জন্য উত্পন্ন আশা করি

1 2 3
4 5 20 <--4*5
7 8 9
3 2 6 <-- 3*2
5 6 30 <-- 5*6

আমি কীভাবে এটি ডেটা ফ্রেম ব্যবহার করতে পারি? ধন্যবাদ।

এই জাতীয় অনুপস্থিত মান গণনা করতে কীভাবে শর্ত যুক্ত করতে হয়?

if 1st % 2 == 0 then 3rd = 1st * 2nd else 3rd = 1st + 2nd

1 2 3
4 5 20 <-- 4*5 because 4%2==0
7 8 9
3 2 5 <-- 3+2 because 3%2==1
5 6 11 <-- 5+6 because 5%2==1

আপনি এটি করতে পারবেন না কারণ আকারটি সমান হবে না
— ময়ূর ডাঙ্গার

আপনি আপনার উত্তর প্রসারিত করতে পারেন? কেন এটি সম্ভব নয় এবং সমস্যা সমাধানের জন্য তিনি কী করতে পারেন?
— দামিয়ান মেলনিকজুক

আরে এমনকি আমারও একই প্রশ্ন আছে। তবে আমি যদি ডেটা ব্যবহার করি তা পাঠ্যগত হয় কি? শর্তটি এর মতো "যদি 'উপাদানগুলিতে মুরগি থাকে তবে' টাইপ '= নন-
— ভেজিট

উত্তর:


17

আপনার dataframe তিন কলাম ধরে নেওয়া যাক করা হয় a, bএবং c। এটাই তুমি চাও:

df['c'] = df.apply(
    lambda row: row['a']*row['b'] if np.isnan(row['c']) else row['c'],
    axis=1
)

সম্পূর্ণ কোড:

df = pd.DataFrame(
    np.array([[1, 2, 3], [4, 5, np.nan], [7, 8, 9], [3, 2, np.nan], [5, 6, np.nan]]), 
    columns=['a', 'b', 'c']
)
df['c'] = df.apply(
    lambda row: row['a']*row['b'] if np.isnan(row['c']) else row['c'],
    axis=1
)

কয়েক বছর দেরি হলেও এটি কেবল তখনই কাজ করে যখন কলামগুলি সংখ্যাসূচক হবে। np.isnanঅ-সংখ্যাযুক্ত ডেটা সমর্থন করে না। এটি এখানে কোনও সমস্যা নয় কারণ ওপিতে সংখ্যার কলাম এবং গাণিতিক ক্রিয়াকলাপ ছিল তবে অন্যথায় pd.isnullএটি একটি ভাল বিকল্প।
— আদর্শ চাওয়াকুলা


3

fillna()ডেটাফ্রেমের পদ্ধতিটি ব্যবহার সম্পর্কে কী ?

df['C'].fillna(df.A * df.B)


2

বলা যাচ্ছে যে আপনার dataframe তিনটি কলাম হয় a, bএবং c। তারপরে আপনি প্রয়োজনীয় অপারেশনটি এভাবে করতে পারেন:

values = df['a'] * df['b']
df['c'] = values.where(df['c'] == np.nan, others=df['c'])

1
বাnp.where(pd.isnull(df.c), df.a * df.b, df.c)
— ভ্যালেন্টাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.