আমি কীভাবে বিভিন্ন ডেটা ফ্রেমে কলামগুলি তুলনা করব?


23

আমি একটি ডিএফের একটি কলাম অন্য ডিএফ এর সাথে তুলনা করতে চাই। কলামগুলি নাম এবং শেষ নাম। আমি যাচাই করতে চাই যে একটি ডেটা ফ্রেমের কোনও ব্যক্তি অন্য একটিতে আছে কিনা।


আপনি কীভাবে ফলাফলটি দেখতে চান তা দয়া করে নির্দেশ করতে পারেন? এটি কি উভয় ডিএফএস-এ নাম প্রকাশের সাথে একটি ডিএফ, এবং আপনারও অন্য কোনও যেমন যেমন গণনা, বা ডিএফ 2-তে মেলানো কলামের দরকার আছে কিনা। ধন্যবাদ!
গীতিকার

খুঁজে বার করো pandas.pydata.org/pandas-docs/stable/generated/...
oW_

আপনার যত্ন নেওয়া কলামগুলিতে আপনি দুটি ডাটা ফ্রেমে অন্তর্ভুক্ত হতে পারেন এবং ফলাফলটিতে সারিগুলির সংখ্যা ইতিবাচক কিনা তা পরীক্ষা করতে পারেন।
dsaxton

এফওয়াইআই, যে কোনও শালীনভাবে বড় বড় নামের প্রথম এবং শেষ নামের সাথে তুলনা করলে ব্যথার অবসান ঘটে - প্রচুর লোকের একই নাম থাকে!
কেন Syme

উত্তর:


22

আপনি যদি একটি নির্দিষ্ট কলামে সমান মানগুলি পরীক্ষা করতে চান তবে নামটি বলুন আপনি দুটি ডেফ্রেমকে একটি নতুনতে মার্জ করতে পারেন:

mergedStuff = pd.merge(df1, df2, on=['Name'], how='inner')
mergedStuff.head()

আমি মনে করি এটি যদি আরও whereবড় ডেটা সেট করে থাকে তবে এটি আরও কার্যকর এবং দ্রুত


1
আমি মনে করি আমরা এখানে একটি অভ্যন্তরীণ যোগদান ব্যবহার করতে চাই এবং তার আকৃতিটি পরীক্ষা করব।
dsaxton

10
df1.where(df1.values==df2.values).notna()

Trueএন্ট্রিগুলি সাধারণ উপাদানগুলি দেখায়। এটি সাধারণ উপাদানের অবস্থানটিও সমাধানের সাথে পৃথক করে merge


কি df.আপনার উত্তর? কেবল df1এবং df2তবে নেইdf
লার্নআর

3

দুটি পৃথক কলামে মানগুলির তুলনা করা

সেট ব্যবহার করে প্রতিটি কলামে অনন্য মান পাবেন। এই দুটি সেটের ছেদটি উভয় কলামে অনন্য মান প্রদান করবে।

উদাহরণ:

df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]}) df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]}) set(df1['c2']).intersection(set(df2['c2']))

আউটপুট: {2, 5}


দুটি ডেটাফ্রেমের কলামের নাম তুলনা করা

আপনি যদি দুটি ডেটাফ্রেমের কলামের নাম তুলনা করার চেষ্টা করছেন তবে:

যদি df1এবং df2দুটি ডেটা ফ্রেম হয়: set(df1.columns).intersection(set(df2.columns))

এটি উভয় ডেটাফ্রেমে থাকা অনন্য কলামের নাম সরবরাহ করবে।

উদাহরণ:

df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]})
df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]})

set(df1.columns).intersection(set(df2.columns))

আউটপুট: {'c2', 'c3'}


আমি মনে করি যে প্রশ্নটি বিভিন্ন ডেটাফ্রেমে দুটি পৃথক কলামের মানগুলির তুলনা করার বিষয়ে, কারণ প্রশ্ন ব্যক্তি একটি ডাটা ফ্রেমের কোনও ব্যক্তি অন্য একটিতে আছে কিনা তা পরীক্ষা করতে চায়।
দিব্যংশু শেখর

ধন্যবাদ, আমি প্রশ্নটি ভুল পেয়েছি। আমি এখনই উত্তর আপডেট করেছি।
এথিরাকস

1

ব্যবহার করে আপনি দুটি করে df মধ্যে সাধারণ এবং বিভিন্ন অবস্থানের সঠিক সংখ্যা চেক দ্বিগুণ করতে পারেন ISIN এবং value_counts ()

সে রকমই:

df['your_column_name'].isin(df2['your_column_name']).value_counts()

ফলাফল:

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

সত্য = সাধারণ মিথ্যা = পৃথক


0

নোট করুন যে ডেটাফ্রেমের কলামগুলি ডেটা সিরিজ। সুতরাং আপনি যদি পান্ডাস সিরিজ হিসাবে দুটি কলাম নেন তবে আপনি সেগুলি তুলনা করতে পারেন ঠিক তেমনই আপনি নিম্পী অ্যারেগুলির সাথে করেন।

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