किसी स्तंभ में अनन्य मान ढूँढें और फिर उन्हें सॉर्ट करें


84

मेरे पास एक पांडा डेटाफ़्रेम है। मैं आरोही क्रम में इसके एक स्तंभ के अद्वितीय मूल्यों को मुद्रित करना चाहता हूं। यह मैं कैसे कर रहा हूँ:

import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()

समस्या यह है कि मुझे Noneआउटपुट के लिए मिल रहा है ।


6
a.sort()संशोधित करता है aऔर इसके द्वारा प्रतिस्थापित कुछ भी वापस नहीं आता है:a.sort(); print a
स्टेलैसिया

जवाबों:


125

sortedपुनरावृत्त वस्तुओं में से एक नई क्रमबद्ध सूची लौटाएँ।

कोड

import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print sorted(a)

आउटपुट

[1, 2, 3, 6, 8]

19

sort प्रकार में बहुत कुछ नहीं है:

In [54]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
a

Out[54]:
array([1, 2, 3, 6, 8], dtype=int64)

इसलिए आपको print aकॉल करने के बाद फिर से कॉल करना होगा sort

उदाहरण के लिए .:

In [55]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
print(a)

[1 2 3 6 8]


7

मुझे ऑन्लाइनर पसंद है:

print(sorted(df['Column Name'].unique()))

6

आज खुद सवाल पर आया। मुझे लगता है कि आपका कोड 'कोई नहीं' (ठीक उसी विधि का उपयोग करके मुझे जो मिला) का कारण है

a.sort()

सूची को म्यूट करने के लिए सॉर्ट फ़ंक्शन को कॉल कर रहा है। मेरी समझ में, यह एक संशोधन आदेश है। परिणाम देखने के लिए आपको प्रिंट (ए) का उपयोग करना होगा।

मेरा समाधान, जैसा कि मैंने पंडों में सब कुछ रखने की कोशिश की:

pd.Series(df['A'].unique()).sort_values()

मुझे pandasसमाधान पसंद है क्योंकि यह NaNअंत में मूल्यों को रखता है और मिश्रित प्रकारों के सरणियों के साथ काम करता है।
एचएस-नेबुला

4

मैं सुपीरियर के प्रकार का उपयोग करने का सुझाव दूंगा, क्योंकि यह वैसे भी है जैसे पृष्ठभूमि में पांडा क्या कर रहे हैं:

import numpy as np
np.sort(df.A.unique())

लेकिन पंडों में सब करना भी मान्य है।


0

एक अन्य तरीका सेट डेटा प्रकार का उपयोग कर रहा है ।

सेट्स की कुछ विशेषता : सेट अनियंत्रित होते हैं, इसमें मिश्रित डेटा प्रकार शामिल हो सकते हैं, एक सेट में तत्वों को दोहराया नहीं जा सकता है, परस्पर भिन्न होते हैं।

आपके प्रश्न का समाधान:

df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
sorted(set(df.A))

सूची प्रकार में उत्तर :

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