2015-04-27 26 views
8

में वाक्यों से सबसे अधिक 100 शब्दों की गणना करें मेरे पास पांडस डेटाफ्रेम में एक कॉलम में टेक्स्ट समीक्षा है और मैं अपने आवृत्ति गणनाओं (पूरे कॉलम में - एकल सेल में नहीं) के साथ एन-सबसे लगातार शब्दों को गिनना चाहता हूं। एक दृष्टिकोण प्रत्येक पंक्ति के माध्यम से एक काउंटर का उपयोग कर शब्दों की गणना कर रहा है। क्या कोई बेहतर विकल्प है?डेटाफ्रेम पांडस

प्रतिनिधि डेटा।

0 a heartening tale of small victories and endu 
1 no sophomore slump for director sam mendes w 
2 if you are an actor who can relate to the sea 
3 it's this memory-as-identity obviation that g 
4 boyd's screenplay (co-written with guardian 
+2

डेटा को तालिका के रूप में पोस्ट करना और छवियों के लिए आमतौर पर सहायक होता है। – Zero

+0

सुझाव के लिए जॉन धन्यवाद, मैंने प्रश्न में एक तालिका बनाने के लिए एचटीएमएल का उपयोग करने का प्रयास किया, लेकिन यह काम खत्म कर दिया, इसलिए मैंने आलसी रूप से एक छवि पोस्ट की :( –

+1

डेटा हमेशा पूरा नहीं होना चाहिए। ज्यादातर मामलों में प्रतिनिधि डेटा क्या है आपको चाहिए। – Zero

उत्तर

15
Counter(" ".join(df["text"]).split()).most_common(100) 

im यकीन है कि आप क्या चाहते हैं आप देना होगा

+1

यह चरित्र की गणना करेगा और शब्द गणना नहीं करेगा? – Zero

+0

जोप्स तय है: पी जॉन गल्ट कौन है? –

+0

ठीक है, अभी भी लग रहा है यह खुद बाहर है;) वहाँ लालित्य के लिए +1! – Zero

14

@ Joran के समाधान आप भी आप कर सकते थे के साथ साथ (आप most_common कॉल करने से पहले काउंटर परिणाम से कुछ गैर शब्द हटाने के लिए हो सकता है)/पंक्तियों

pd.Series(' '.join(df['text']).lower().split()).value_counts()[:100] 

आप मानक series.value_counts से मिलेगा दो बार लगता है (2X) तेजी सेपाठ की बड़ी मात्रा के लिए series.value_counts का उपयोगविधि

मूवी समीक्षा 3000 पंक्तियों के डेटासेट के लिए, कुल 400K वर्ण और 70k शब्द।

In [448]: %timeit Counter(" ".join(df.text).lower().split()).most_common(100) 
10 loops, best of 3: 44.2 ms per loop 

In [449]: %timeit pd.Series(' '.join(df.text).lower().split()).value_counts()[:100] 
10 loops, best of 3: 27.1 ms per loop 
+0

यह थोड़ी आश्चर्यजनक है, एक (मैं) सोचता हूं कि पुनरावृत्ति और एक काउंटर अपडेट करना स्ट्रिंग मैनिपुलेशन करने से तेज होगा, अकेले ही एक श्रृंखला का निर्माण करने दें। लेकिन यह पता चला है कि विभाजन के बजाय अद्यतन धीमा हिस्सा है ... (और पांडा सादे निर्देश के बजाय साइथन/क्लिब का उपयोग करते हैं)। –

संबंधित मुद्दे