python - পান্ডে মার্জ() এবং কনক্যাট() এর মধ্যে পার্থক্য(গুলি)




pandas join (3)

আমি বর্তমানে pd.DataFrame.merge() এবং pd.concat() pd.DataFrame.merge() মধ্যে প্রয়োজনীয় পার্থক্য (গুলি) বোঝার চেষ্টা করছি।

দুর্দান্ত প্রশ্ন। প্রধান পার্থক্যটি:

pd.concat উভয় pd.concat কাজ করে।

অন্য পার্থক্যটি হ'ল pd.concat অভ্যন্তরীণ ডিফল্ট এবং কেবলমাত্র বাইরের সাথে মিলিত হয়, যখন pd.DataFrame.merge() বাম , ডান , বাহ্যিক , অভ্যন্তরীণ ডিফল্ট যোগদান করে।

তৃতীয় উল্লেখযোগ্য অন্যান্য পার্থক্য হ'ল: pd.DataFrame.merge() এর সাথে একই নামের সাথে কলামগুলি মার্জ করার সময় কলাম প্রত্যয় সেট করার বিকল্প রয়েছে, যখন pd.concat জন্য এটি সম্ভব নয়।

ডিফল্টরূপে pd.concat দিয়ে আপনি একাধিক ডেটাফ্রেমের সারি সারি করতে সক্ষম ( axis=0 ) এবং যখন আপনি axis=1 সেট করেন axis=1 তারপরে আপনি pd.DataFrame.merge() ফাংশনটি নকল করেন।

pd.concat কিছু দরকারী উদাহরণ:

df2=pd.concat([df]*2, ignore_index=True) #double the rows of a dataframe

df2=pd.concat([df, df.iloc[[0]]]) # add first row to the end

df3=pd.concat([df1,df2], join='inner', ignore_index=True) # concat two df's

pd.DataFrame.merge() এবং pd.concat() এর মধ্যে প্রয়োজনীয় পার্থক্য কী?

এখনও অবধি, আমি এটিই পেয়েছি, আমার বোঝাপড়াটি কতটা নিখুঁত এবং সঠিক তা সম্পর্কে মন্তব্য করুন:

  • .merge() কেবল কলামগুলি (প্লাস সারি-সূচকগুলি) ব্যবহার করতে পারে এবং এটি ডেটাবেস-শৈলীর ক্রিয়াকলাপের জন্য শব্দার্থগতভাবে উপযুক্ত। .concat() কেবলমাত্র সূচক ব্যবহার করে অক্ষের সাহায্যে ব্যবহার করা যেতে পারে এবং একটি শ্রেণিবিন্যাস সূচক যুক্ত করার বিকল্প দেয়।

  • ঘটনাচক্রে, এটি নিম্নলিখিত অপ্রয়োজনীয়তার জন্য অনুমতি দেয়: উভয় সারি সূচকগুলি ব্যবহার করে দুটি ডেটাফ্রেম একত্রিত করতে পারে।

  • pd.DataFrame.join() কেবলমাত্র pd.DataFrame.join() ব্যবহারের ক্ষেত্রে সাবসেটের জন্য একটি শর্টহ্যান্ড দেয়

(পান্ডস তথ্য বিশ্লেষণে ব্যবহারের বিস্তৃত ক্ষেত্রগুলিকে সম্বোধন করার ক্ষেত্রে দুর্দান্ত a কোনও নির্দিষ্ট কাজ সম্পাদন করার সর্বোত্তম উপায় কী তা নির্ধারণ করার জন্য ডকুমেন্টেশন অন্বেষণ করা কিছুটা সাহসী হতে পারে))


খুব উচ্চ স্তরের পার্থক্য হ'ল merge() সাধারণ কলামগুলির মানগুলির ভিত্তিতে দুটি (বা আরও) ডেটাফ্রেম একত্রিত করতে ব্যবহৃত হয় (সূচকগুলিও ব্যবহার করা যেতে পারে, left_index=True এবং / অথবা right_index=True ) এবং concat() axis বিকল্পটি 0 বা 1 সেট করা আছে কি না তার উপর নির্ভর করে (বা পাশে) একের নীচে এক (বা আরও) ডেটা ফ্রেম সংযুক্ত করতে ব্যবহৃত হয়।

join() ইনডেক্সের ভিত্তিতে 2 ডেটাফ্রেমগুলি মার্জ করার জন্য ব্যবহৃত হয়; left_index=True বিকল্পের সাথে merge() ব্যবহার না করে left_index=True আমরা join() ব্যবহার করতে পারি।

উদাহরণ স্বরূপ:

df1 = pd.DataFrame({'Key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'], 'data1': range(7)})

df1:
   Key  data1
0   b   0
1   b   1
2   a   2
3   c   3
4   a   4
5   a   5
6   b   6

df2 = pd.DataFrame({'Key': ['a', 'b', 'd'], 'data2': range(3)})

df2:
    Key data2
0   a   0
1   b   1
2   d   2

#Merge
# The 2 dataframes are merged on the basis of values in column "Key" as it is 
# a common column in 2 dataframes

pd.merge(df1, df2)

   Key data1 data2
0   b    0    1
1   b    1    1
2   b    6    1
3   a    2    0
4   a    4    0
5   a    5    0

#Concat
# df2 dataframe is appended at the bottom of df1 

pd.concat([df1, df2])

   Key data1 data2
0   b   0     NaN
1   b   1     NaN
2   a   2     NaN
3   c   3     NaN
4   a   4     NaN
5   a   5     NaN
6   b   6     NaN
0   a   Nan   0
1   b   Nan   1
2   d   Nan   2

pd.concat তার যুক্তি হিসাবে একটি pd.concat লাগে। সুতরাং, এটি DataFrame সরাসরি তার যুক্তি হিসাবে নিতে পারে না। এছাড়াও DataFrame Dimension গুলি DataFrame বরাবর অক্ষর সহ DataFrame হওয়া উচিত।

pd.merge DataFrame তার আর্গুমেন্ট হিসাবে নিতে পারে এবং একই কলাম বা সূচকের সাথে দুটি DataFrame সংযুক্ত করতে ব্যবহৃত হয়, যা pd.concat দিয়ে করা pd.concat কারণ এটি pd.concat পুনরাবৃত্তি কলামটি দেখায় show

যেখানে যোগদান দুটি আলাদা সূচক সহ দুটি DataFrame যোগ দিতে ব্যবহার করা যেতে পারে।





concat