データフレームに格納したテキストを左寄せで表示させたい。
解決したいこと
表形式のテキストデータを読込み、Ginzaで分かち書きを行ったあと、行毎のわかり書きの結果をデータフレーム列にリスト(※['A','B','C','D'])で格納しています。
リストに格納した特定のキーワードに合致するテキスト原文のみを抽出し、printでセルに表示させるとテキスト表示が右寄せ表示となります。左寄せ表示としたいのですが、どうすればよいかわからないのです。
発生している問題
実行コードは以下です。df[column_name]に格納したテキストの原文から、ストップワードを除く、指定の品詞を取り上げ、行毎に分かち書きした単語をdf['separate_words']に格納するというものです。
nlp = spacy.load('ja_ginza')
# 出現する単語をリストに追加
words = [] #全単語
words_list=[] #行毎の単語リスト
#for doc in nlp.pipe(df[column_name]):
print('Tokenizing and part-of-speech tagging in progress.... please wait a minute.')
for doc in tqdm(nlp.pipe(df[column_name]), total=len(df)):
words.extend([token.lemma_ for token in doc
if token.pos_ in include_pos and
token.lemma_ not in stop_words])
sep_word=[token.lemma_ for token in doc if token.pos_ in include_pos and token.lemma_ not in stop_words]
words_list.append(sep_word)
time.sleep(0.1)
#行毎の意見→単語に分解し、カラムに格納
df['separate_words']= [s for s in words_list]
その後、以下で分かち書きしたキーワードを指定し、そのキーワードがdf['separate_words']にある場合、df[column_name]にあるテキスト原文を表示するということをしています。
pd.set_optionはできる限り、フル表示させるために設定したものです。
Keyword = 'keyword_A' #@param {type:"raw"}
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_colwidth', 400)
print(df[column_name][df['separate_words'].apply(lambda x: Keyword in x)])
自分で試したこと
- ljust 等、試みましたが、うまくいきませんでした。
- 以下を実行すれば、できるのはできたのですが、左に寄せるだけならもっと簡便にしたいです。
try:
dfa=pd.DataFrame(df[column_name][df['separate_words'].apply(lambda x: Keyword_A
in x)])
for i in dfa[column_name]:
print('\t✓',i)
except:
print(Keyword_A,'unknown keyword')
お願い
うまくできる方法があれば、ぜひともご教示をお願いします。
0