কলামের নাম দ্বারা পান্ডাস ডেটা ফ্রেমে যোগদান করা


91

নিম্নলিখিত কলামের নাম সহ আমার কাছে দুটি ডাটাফ্রেম রয়েছে:

frame_1:
event_id, date, time, county_ID

frame_2:
countyid, state

আমি নীচে (বাম) যোগদান করে নিম্নলিখিত কলামগুলির সাথে একটি ডেটাফ্রেম পেতে চাই county_ID = countyid:

joined_dataframe
event_id, date, time, county, state

আমি যে কলামগুলিতে যোগদান করতে চাইছি তা সূচক না হলে এটি কীভাবে করব তা আমি বুঝতে পারি না। সবচেয়ে সহজ উপায় কি? ধন্যবাদ!

উত্তর:


164

আপনি নীচে বাম এবং ডান_অন বিকল্পগুলি ব্যবহার করতে পারেন:

pd.merge(frame_1, frame_2, left_on='county_ID', right_on='countyid')

আপনি যদি কেবল বাম হাতের ডেটাফ্রেমে চাবিটি একত্রীকরণ করতে চান তবে আমি প্রশ্ন থেকে নিশ্চিত নই। যদি এটি হয় তবে নীচেরগুলি এটি করবে (উপরেরটি কার্যকরভাবে অনেকগুলি একত্রে মার্জ করবে)

pd.merge(frame_1, frame_2, how='left', left_on='county_ID', right_on='countyid')

4
এটির সামান্য প্রসারিত করতে, আপনি যদি একদিকে কোনও সূচি নির্দিষ্ট করতে চান তবে আপনি ব্যবহার করতে পারেন right_index=True
ড্রাকলস

4
@ ওউডি যদি frame_1ইতিমধ্যে county_IDসূচক হিসাবে থাকে এবং frame_2ইতিমধ্যে countyidসূচক হিসাবে আছে ? আমি বুঝতে পারছি আমি প্রতিস্থাপন করতে পারেন frame_1.reset_index()জন্য frame_1(এবং একই frame_2) আপনার উত্তর। তবে সূচকটি পুনরায় সেট না করেই যোগ দেওয়ার / সংযুক্তির আরও কার্যকর উপায় আছে কি?
ঝাং 18

3

আপনাকে county_IDসঠিক ফ্রেমের সূচক হিসাবে তৈরি করতে হবে :

frame_2.join ( frame_1.set_index( [ 'county_ID' ], verify_integrity=True ),
               on=[ 'countyid' ], how='left' )

আপনার তথ্যের জন্য, ডান ফ্রেমে যোগদানের কলামে অনন্য মান রয়েছে যখন পান্ডে বাম জোড় বিরতিতে। এই বাগ দেখুন

সুতরাং আপনাকে যোগদানের আগে সততা যাচাই করতে হবে , verify_integrity=True

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.