質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Python 3.x

    7443questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

PythonのPandasで'Unknown string format:'のエラー

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 167

gymgym

score 69

ValueError: ('Unknown string format:', '任天堂の『ニンテンドークラシックミニ ファミリーコンピュータ 【https://t.co/uxetm9KCXU限定】 オリジナルポストカード(30枚セット)付』')


PythonでTwitterAPIを用いてツイートを取得して形態素解析を行いたいと考えています。
しかし、ツイートをcsvファイルに保存してPandasで読み込み解析を行おうと思ったところ、以上のようなエラーが出ました。
「投稿日をdatatime型にする」の部分を追加したらエラーが出ました。

原因はどのように考えられるでしょうか。

よろしくお願い致します。

# coding: UTF-8
import re
import csv
import time
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import MeCab
import random

# テキストを形態素解析して辞書のリストを返す
def get_diclist(text):
    parsed = m.parse(text)      # 形態素解析結果(改行を含む文字列として得られる)
    lines = parsed.split('\n')  # 解析結果を1行(1語)ごとに分けてリストにする
    lines = lines[0:-2]         # 後ろ2行は不要なので削除
    diclist = []
    for word in lines:
        l = re.split('\t|,',word)  # 各行はタブとカンマで区切られてるので
        d = {'Surface':l[0], 'POS1':l[1], 'POS2':l[2], 'BaseForm':l[7]}
        diclist.append(d)
    return(diclist)

# 形態素解析結果の単語ごとdictデータにPN値を追加する
def add_pnvalue(diclist_old):
    diclist_new = []
    for word in diclist_old:
        base = word['BaseForm']        # 個々の辞書から基本形を取得
        if base in pn_dict:
            pn = float(pn_dict[base])  # 中身の型があれなので
        else:
            pn = 'notfound'            # その語がPN Tableになかった場合
        word['PN'] = pn
        diclist_new.append(word)
    return(diclist_new)

# 各ツイートのPN平均値をとる関数
def get_pnmean(diclist):
    pn_list = []
    for word in diclist:
        pn = word['PN']
        if pn != 'notfound':
            pn_list.append(pn)  # notfoundだった場合は追加もしない
    if len(pn_list) > 0:        # 「全部notfound」じゃなければ
        pnmean = mean(pn_list)
    else:
        pnmean = 0              # 全部notfoundならゼロにする
    return(pnmean)


# tweets.csvの読み込み
nintendo_df = pd.read_csv('nintendo1.csv', encoding='utf-8', names=('create_at', 'tweet','retweet_count','favorite_count'), engine='python')
# 投稿日をdatatime型に変換
nintendo_df['create_at'] = pd.to_datetime(nintendo_df['create_at'])

# 改行コード削除
nintendo_df['tweet'] = nintendo_df['tweet'].replace('\n', '', regex=True)

# 極性辞書の読み込み
pn_df = pd.read_csv('PN_Table.txt',
                    sep=':',
                    encoding='utf-8',
                    names=('Word', 'Reading', 'POS', 'PN')
                    )

# PN Tableをデータフレームからdict型に変換しておく
word_list = list(pn_df['Word'])
pn_list = list(pn_df['PN'])
pn_dict = dict(zip(word_list, pn_list))

# MeCabインスタンス作成
m = MeCab.Tagger('')

df_72 = nintendo_df[nintendo_df['create_at'].dt.date == dt.date(2018,7,8)]
Sun Jul 08 23:38:17 +0000 2018,@murabitogamein 任天堂に就職するのが夢(唐突),0,1
Sun Jul 08 23:37:30 +0000 2018,[74]일본의 유명한 게임 제작 회사인 닌텐도는 任天堂가 정식명칭입니다.,0,0
Sun Jul 08 23:37:28 +0000 2018,"2009211日
マリオ&ルイージRPG3!!!(任天堂)
詳細はコチラ : https://t.co/clNgRnG9nj 

#このゲームを語れる人RT https://t.co/0qhH6kzneD",0,0
Sun Jul 08 23:36:29 +0000 2018,任天堂の電話対応5時までとかふざけんなよ ちゃんと残業しろよカス,0,0
Sun Jul 08 23:35:35 +0000 2018,チーターもろくに排除できない無能開発だらけですからね任天堂は.,0,4
Sun Jul 08 23:34:26 +0000 2018,任天堂の真の際どさはどう見てもセクシャルだったりブラックな行為や犯罪ぽさを匂わせたりしてんのに全年齢対象で出してるところでしょ。DなりZなりそういうレーティングで出てくるやつはその辺のフィルタリング掛かってるからある意味安心よ。,0,0
Sun Jul 08 23:33:26 +0000 2018,"2006727日
bit Generations Soundvoyager(任天堂)
詳細はコチラ : https://t.co/JvbmqHEhAs 

#このゲームを語れる人RT https://t.co/fwcc49azYX",0,0
Sun Jul 08 23:33:24 +0000 2018,57日分来た!任天堂 の 【https://t.co/N6CnOInf1v限定】【液晶保護フィルムEX付き(任天堂ライセンス商品)】Nintendo Switch ... を Amazon でチェック! https://t.co/i5U3LifHKg,0,0
Sun Jul 08 23:33:06 +0000 2018,【ゲームのベストセラー 2位】  ニンテンドークラシックミニ ファミリーコンピュータ 週刊少年ジャンプ創刊50周年記念バージョン+ニンテンドーUSB ACアダプター https://t.co/0p6HTWq58r,0,0
Sun Jul 08 23:31:33 +0000 2018,ニンテンドースイッチのスタンドを買おうと思って尼を物色していたら、任天堂純正のスタンドが今週発売になるようなのでそれを買うことにしました。置き場所はPCモニターの下かな。プロコンも欲しくなっちゃうね。,0,0
Sun Jul 08 23:31:30 +0000 2018,"【ゲームソフト】ベスト10
スーパーマリオ 3Dワールド - Wii U
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • tachikoma

    2018/07/09 10:23

    nintendo1.csvの一列目が時刻情報のフォーマットにあってないのが問題のようですね。csv、最初の数行を追記お願いできませんか。

    キャンセル

まだ回答がついていません

同じタグがついた質問を見る

  • Python 3.x

    7443questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。