मैं विभिन्न डेटा फ़्रेमों में कॉलम की तुलना कैसे करूं?


23

मैं अन्य df के साथ df के एक कॉलम की तुलना करना चाहूंगा। कॉलम नाम और अंतिम नाम हैं। मैं जांचना चाहूंगा कि क्या एक डेटा फ्रेम में एक व्यक्ति दूसरे में है।


क्या आप कृपया बता सकते हैं कि आप कैसा दिखना चाहते हैं? क्या यह दोनों dfs में दिखाई देने वाले नामों के साथ एक df है, और क्या आपको df2, आदि में गिनती या मिलान कॉलम जैसे किसी और चीज़ की भी आवश्यकता है। धन्यवाद!
द लायरिस्ट

बाहर की जाँच pandas.pydata.org/pandas-docs/stable/generated/...
oW_

आप उन कॉलमों पर दो डेटा फ़्रेमों में शामिल हो सकते हैं जिनकी आपको परवाह है और जाँच करें कि परिणाम में पंक्तियों की संख्या सकारात्मक है या नहीं।
dsaxton

FYI करें, किसी भी शालीनता से बड़े नाम के पहले और आखिरी नाम की तुलना करने से दर्द खत्म हो जाएगा - बहुत से लोगों का नाम एक ही है!
केन सिमे

जवाबों:


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
LearneR

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

आप isin और value_counts () का उपयोग करके दो df के बीच सामान्य और विभिन्न पदों की सही संख्या की जांच कर सकते हैं

उसके जैसा:

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

परिणाम:

उदाहरण है

सत्य = सामान्य मिथ्या = भिन्न


0

ध्यान दें कि डेटाफ़्रेम के कॉलम डेटा श्रृंखला हैं। इसलिए यदि आप पंडों की श्रृंखला के रूप में दो कॉलम लेते हैं, तो आप उनकी तुलना उसी तरह से कर सकते हैं, जैसे कि आप संख्यात्मक सरणियों के साथ करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.