मैंने ट्विटर स्क्रैपर का उपयोग करके कुछ ऑनलाइन डेटा स्क्रैप किया। मुझे पता है कि मैं एक्सेल का उपयोग करके इसे आसानी से फ़िल्टर कर सकता हूं, और मैंने डेटा को xlsx में निर्यात किया। लेकिन, मैं पायथन का उपयोग करके फ़िल्टर करना चाहता हूं। मैंने Hurricane Dorian वाले डेटा को स्क्रैप किया। साथ ही, मैं वह सब कुछ फ़िल्टर करना चाहता हूं जिसमें "Bahamas" शब्द शामिल नहीं है। यह मैं कैसे करूंगा?

शुक्रिया!

from twitterscraper import query_tweets
import datetime as dt
import pandas as pd

begin_date = dt.date(2019, 7, 1)
end_date = dt.date(2019, 9, 9)

limit = 1000
lang = 'english'

tweets = query_tweets('Hurricane Dorian', begindate = begin_date, enddate = end_date, limit = limit, lang = lang)

df = pd.DataFrame(t.__dict__ for t in tweets)

export_excel = df.to_excel (r'C:\Users\victo\Desktop\HurricaneData.xlsx', index = None, header=True)
0
Victorb37 9 सितंबर 2019, 02:25
मुझे लगता है कि आपके लिए रेगेक्स सीखने का समय आ गया है। यह एक बहुत ही बहुमुखी टेक्स्ट फ़िल्टरिंग विकल्प है और अक्सर पायथन में इसकी आवश्यकता होती है। stackoverflow.com/ प्रश्न/15325182/… regex101.com
 – 
KWx
9 सितंबर 2019, 02:47

1 उत्तर

आप पंडों में फ़िल्टर करने के लिए str फ़ंक्शन का उपयोग कर सकते हैं। अनुक्रमण पर पांडा सहायता देखें। आपके पोस्ट किए गए प्रश्नों के लिए विशिष्ट उत्तर (कोड) यहां दिया गया है:

from twitterscraper import query_tweets 
import datetime as dt 
import pandas as pd

begin_date = dt.date(2019, 7, 1) 
end_date = dt.date(2019, 9, 9)

limit = 1000 
lang = 'english'

tweets = query_tweets(
    'Hurricane Dorian', 
    begindate = begin_date, 
    enddate = end_date, 
    limit = limit, 
    lang = lang
)

# Convert to dataframe
df = pd.DataFrame(t.__dict__ for t in tweets)

# make a boolean mask
filt = df['text'].str.contains('Bahamas')

# compare the lengths of the dataframes
print(df.shape)
print(df.loc[filt].shape)

आप देख सकते हैं कि अनफ़िल्टर्ड df में 340 पंक्तियाँ हैं। इसे उन पंक्तियों तक सीमित कर दिया जहां पाठ में 'बहामास' था, इसे घटाकर 55 पंक्तियों तक कर दिया।

(340, 16)

(55, 16)

जो सत्य थे उन्हें रखने के लिए, फ़िल्टर का उपयोग करके इसे पुन: असाइन करें:

df = df.loc[filt]

या यदि आप मूल कच्चे डेटा को संरक्षित करना चाहते हैं तो आप इसे एक नए डेटाफ्रेम पर असाइन कर सकते हैं।

0
Randall Goodwin 9 सितंबर 2019, 06:53
यह कुछ हद तक काम किया। यह निर्धारित करने में सक्षम था कि स्ट्रिंग में कौन सा है, "फ़िल्टर" टैब पर चर एक्सप्लोरर के भीतर सभी डेटा दिखाता है और यदि यह सत्य या गलत है। अगर मैं केवल वही रखना चाहता हूं जो सच थे, इसके टेक्स्ट और अन्य सभी डेटा के साथ, मैं यह कैसे करूंगा?
 – 
Victorb37
9 सितंबर 2019, 04:30
पंक्तियों को सत्य रखने के तरीके को दिखाने के लिए उत्तर अपडेट किया गया।
 – 
Randall Goodwin
9 सितंबर 2019, 06:54