###前提・実現したいこと
twitterのテキスト処理の過程でcsvファイルを加工して出力するのですが、狙った形でのプロットがなかなかうまくいきません。卒論の初稿締め切りが迫っており、ここしか頼るところがありません。どなたか助けていただけませんでしょうか。
入力ファイル(csv)↓
||A|B|C|D|E|F|G|H|I|
|:--|:--:|:--:|:--:|:--:|
|0|2011/3/11|19:57:54|eiden33|ちょっとイソジンかって放射能対策してくる。||None|None|None|None|
|1|2011/3/11|20:02:34|BELx2TOKYOJAPAN|外部電源が無いですが電源車で復旧だそうです。放射能漏れは無いとのことだけど柏崎原発の時も隠蔽してたので、納豆,コンブ,イソジン(ヨウ素剤)を用意していおきましょう!ヨウ素の摂取量です。甲状腺に異常のある人はヨウ素取りすぎないようにhttp://www.nuketext.or...||None|None|None|None|
…
|3501|2011/4/1|11:48:22|shiori_ayase|今日は、イソジン買って帰る。・・・いや、放射線対策じゃなくてね、のどが痛いんだよ、うがい薬が欲しいんだよ!!||None|None|None|None|
|3502|2011/4/2|12:05:15|enjoy_cacao||logic_text||陰毛がチリチリして来た気がするのも、やはり放射能の影響でしょうか。イソジントリートメントでケアしなくては…。||None|
目標とするcsvファイル↓
||A|B|C|D|E|F|G|H|I|
|:--|:--:|:--:|:--:|:--:|
|0|2011/3/11|19:57:54|eiden33|||||||
|1|2011/3/11|20:02:34|BELx2TOKYOJAPAN|||||||
…
|3501|2011/4/1|11:48:22|shiori_ayase|||||||
|3502|2011/4/2|12:05:15|enjoy_cacao|logic_text||||||
以上の操作の説明としましては、ツイート情報(1行)から空白やNoneやツイート本文を除いて、かつ、日時とアカウント名だけを取り出して出力のように並べるという動作がしたいです。
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
list1=[] list2=pd.DataFrame(index=[], columns=[]) for i in range(0,1): txt = dema_df.loc[i:i,['C','D','E','F','G','H','I']] a = txt.iloc[:,[n]] while(len(str(a)) <= 15): b = re.findall("[a-zA-Z0-9_]{2,15}", str(a))#正規表現 oo=[] for j in range(0,len(b)): if (b[j] != 'None'): oo=np.append(oo,b[j]) list1=pd.DataFrame(oooo) list2=pd.concat([list2,list1]) list2
###試したこと
ここでは、「正規表現での抽出」は半角表記であるものを抽出する動作なので、アカウント名を抽出しようとすると日時の情報も一緒に抽出されてしまうので一旦切り分けて考えています。
できれば日時情報も一緒に作業過程の中に入ったコーディングをご教授いただけたら幸いです。
上記コードの考え方としましては、
①入力されたcsvファイル(dema_df)を上から1行だけ読み込む。
②まず長文(ツイート内容)を弾くためにlen <= 15 のセルだけを抽出(アカウント名の字数制限は2文字以上15文字以下)。
③正規表現を用いて半角表記のセル(=アカウント名の入ったセル)を取り出す。
④取り出したセルを左から順番に一列に並べる
以下、元のデータフレームの終わりの行まで繰り返し
となります。
(②を行うことでツイート本文中のURLなどの半角表記に③で反応してしまうことを防いでいます。)
目標とするプロットまで、まだまだ至らぬ点がたくさんあるコーディングであるとは思いますが、自力ではこれが限界でした...。何卒よろしくお願いします。
###補足情報(言語/FW/ツール等のバージョンなど)
回答2件
あなたの回答
tips
プレビュー