我有一個Pandas DataFrame,其中包含從外部源收集的腳本。列text_content
包含腳本內容。最長的腳本由85.617個字符組成。在熊貓數據框中標記文本
樣本給你一個想法:
這些腳本包含表名和其他有用的信息。目前,數據幀被寫入到SQLite數據庫表中,然後可以使用ad-hoc SQL語句進行搜索(並分發給更多人羣)。
一個常見的用例是我們將有一個表名列表,並想知道它們出現的腳本。如果我們需要在SQL中執行此操作,則需要我們使用LIKE
運算符執行通配符搜索,這在性能方面很糟糕。
因此,我想從腳本提取話,同時它還是一個數據幀,導致兩列的表,每行包括:
- 原來的腳本行的鏈接
- 這是在腳本
每個腳本將導致的行數(取決於比賽的量)中找到一個單詞。
到目前爲止,我寫了這個從腳本中提取的話:
DataFrame(df[df.text_type == 'DISCRIPT']
.dropna(subset=['text_content'])
.apply(lambda x: re.findall('([a-zA-Z]\w+)', x['text_content']), axis=1)
.tolist())
結果:
到目前爲止,一切都很好(?)。
還有兩個步驟需要經過,但我有點卡在這裏。
- 刪除常用單詞列表(例如SQL保留字)。
- 重塑DataFrame,使每行都匹配,但鏈接到原始DataFrame中的腳本。
我可以用T
移調數據幀,結合使用replace()
關鍵字(與NA值替換它們),最後用dropna()
的預設列表列表縮短爲只需將關鍵字。但是,我不確定這是否是最好的方法。
我非常感謝您的意見和建議!