R_Tani0112
@R_Tani0112

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

取得したツイートを必要なテキストだけ取り出したい

取得したツイート情報を正規表現を使って、「返信先:@~」を除去して、pandasの
DataFrame内に収納したいです。どなたかご教授頂けると幸いです。
*赤線で引いた所を削除したいと考えています。

image.png

image.png

0

2Answer

取り急ぎの回答になるため具体的なコードは示せないですが、
「正規表現」というものを使えばいけそうな気がします

1Like

Comments

  1. @R_Tani0112

    Questioner

    ご回答ありがとうございます。
    正規表現を使えば取り出せることは、分かっているのですが、どうプログラムを組めば、必要なテキスト情報になるのかが、分からなくて困っているんですよね...

  2. 以下のようなコードで意図しているものが取り出せました。

    import re
    
    str = "返信先:@hogehoge\nテストツイート"
    
    re.sub("返信先:@.+\n", '', str)
    
    テストツイート
    

    19セルのifブロックの一番下に

    value = re.sub("返信先:@.+\n", '', value)
    

    を追加することでいけそうな気がしますがいかがでしょうか?

  3. @R_Tani0112

    Questioner

    ご連絡ありがとうございます。
    ご教授頂いたソースで解決できました。

    助かりました!ありがとうございます。

Pythonの正規表現ライブラリrepandasを使用してツイートから特定のテキストを除去し、DataFrameに収納するコードのサンプルを書いてみます。参考にしてみてください。

まずはツイートのデータがどのように構成されているかを知る必要があります。ここでは、ツイートが文字列のリストとして提供され、各ツイートが単一の文字列であると仮定します。

import re
import pandas as pd

# 元のツイートのリスト
tweets = [
    "This is a tweet. 返信先:@user1",
    "Another tweet here. 返信先:@user2",
    "Yet another tweet. 返信先:@user3",
    # 他のツイート...
]

# 「返信先:@~」を除去
tweets_cleaned = [re.sub(r'返信先:@\S*', '', tweet) for tweet in tweets]

# DataFrameに収納
df = pd.DataFrame(tweets_cleaned, columns=['tweet'])

print(df)

まず各ツイートから「返信先:@~」を除去します。
正規表現 返信先:@\S* は、「返信先:@」に続く一つ以上の非空白文字(ユーザー名)を指します。

次に、整形されたツイートのリストを使用してpandasDataFrameを作成します。
列名として 'tweet' を指定します。

re.sub関数は、最初の引数の正規表現に一致する部分を、第二引数の文字列で置き換えます。
この場合、第二引数は空文字列('')なので、一致する部分が削除されます。

1Like

Comments

  1. @R_Tani0112

    Questioner

    ご回答ありがとうございます。

Your answer might help someone💌