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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

受付中

リスト内の日付と都道府県をカウントし、都道府県名の出てきた回数の多い順にcsvに出力

lokoloko
lokoloko

総合スコア3

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

424閲覧

投稿2022/01/07 05:56

words = {('2021/12/12-20:33:49','東京都につきました。'),('2021/12/14/-08:21:90','北海道で積雪'),('2022/1/7/-00:19:14','東京都で積雪'),('2021/12/12/-04:51:11','東京都で雨'), ('2021/12/12/-04:19:36','神奈川県で友人と会った'),('2022/1/4/-09:00:23','北海道では午後から晴れ')}

以上のようなリストから、日付とそれに対応した都道府県名を抽出し、出てきた都道府県名の回数の多い順にcsvに出力したいと考えています。なお、時間の部分は必要ないので削除して抽出したいです。

import csv from csv import reader from collections import Counter import MeCab mecab = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd') parse = mecab.parse(str(new_list)) lines = parse.split('\n') items = (re.split('[\t,]', line) for line in lines) # # 固有名詞をリストに格納 words = [item[0] for item in items if (item[0] not in ('EOS', '', 't', 'ー') and item[1] == '名詞') and item[2] == '固有名詞'] comp_list = [] for word in words: #都道府県カウント if '北海道' in word: comp_list.append('北海道') continue elif '青森県' in word: comp_list.append('青森県') continue elif '岩手県' in word: comp_list.append('岩手県') continue elif '宮城県' in word: comp_list.append('宮城県') continue elif '秋田県' in word: comp_list.append('秋田県') continue elif '山形県' in word: comp_list.append('山形県') continue elif '福島県' in word: comp_list.append('福島県') continue elif '茨城県' in word: comp_list.append('茨城県') continue elif '栃木県' in word: comp_list.append('栃木県') continue elif '群馬県' in word: comp_list.append('群馬県') continue elif '埼玉県' in word: comp_list.append('埼玉県') continue elif '千葉県' in word: comp_list.append('千葉県') continue elif '東京都' in word: comp_list.append('東京都') continue elif '神奈川県' in word: comp_list.append('神奈川県') continue elif '新潟県' in word: comp_list.append('新潟県') continue elif '富山県' in word: comp_list.append('富山県') continue elif '石川県' in word: comp_list.append('石川県') continue elif '福井県' in word: comp_list.append('福井県') continue elif '山梨県' in word: comp_list.append('山梨県') continue elif '長野県' in word: comp_list.append('長野県') continue elif '岐阜県' in word: comp_list.append('岐阜県') continue elif '静岡県' in word: comp_list.append('静岡県') continue elif '愛知県' in word: comp_list.append('愛知県') continue elif '三重県' in word: comp_list.append('三重県') continue elif '滋賀県' in word: comp_list.append('滋賀県') continue elif '京都府' in word: comp_list.append('京都府') continue elif '大阪府' in word: comp_list.append('大阪府') continue elif '兵庫県' in word: comp_list.append('兵庫県') continue elif '奈良県' in word: comp_list.append('奈良県') continue elif '和歌山県' in word: comp_list.append('和歌山県') continue elif '鳥取県' in word: comp_list.append('鳥取県') continue elif '島根県' in word: comp_list.append('島根県') continue elif '岡山県' in word: comp_list.append('岡山県') continue elif '広島県' in word: comp_list.append('広島県') continue elif '山口県' in word: comp_list.append('山口県') continue elif '徳島県' in word: comp_list.append('徳島県') continue elif '香川県' in word: comp_list.append('香川県') continue elif '愛媛県' in word: comp_list.append('愛媛県') continue elif '高知県' in word: comp_list.append('高知県') continue elif '福岡県' in word: comp_list.append('福岡県') continue elif '佐賀県' in word: comp_list.append('佐賀県') continue elif '長崎県' in word: comp_list.append('長崎県') continue elif '熊本県' in word: comp_list.append('熊本県') continue elif '大分県' in word: comp_list.append('大分県') continue elif '宮崎県' in word: comp_list.append('宮崎県') continue elif '鹿児島県' in word: comp_list.append('鹿児島県') continue elif '沖縄県' in word: comp_list.append('沖縄県') continue continue # カウントの降順で出力(カンマ区切り) counter = Counter(comp_list) sorted_list = sorted(counter.items(), key=lambda x:x[1], reverse=True) print(sorted_list) # 抽出したもののcsv作成 with open('comp.csv', 'w', encoding='utf-8') as f: writer = csv.writer(f) writer.writerows(sorted_list) f.close()

このコードでは、都道府県のみしかカウントされず、日付も一緒に入れたいのですが、方法がわかりません。

どなたかお教えいただけないでしょうか。

良い質問の評価を上げる

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

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

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

気になる質問をクリップする

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

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

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

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

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

melian

2022/01/07 06:13

words = {('2021/12/12-20:33:49', ...} となっていますが、words は set 型のインスタンスなのでしょうか? コードを見る限り、words はタプルのリストの様に見えるのですが、、、。
can110

2022/01/07 06:21

質問とコードの内容がかみ合っていないように思います。 質問中のwordsとコード中のwordsは異なるもののようですし、コード中のnew_listは定義されていないように見えます。 また「日付と都道府県をカウントする」「日付も一緒に入れる」という内容が理解できません。 元データ、手作業でやりたいことを実現する手順、およびその結果データを具体的に示すと回答得られやすいかと思います。
lokoloko

2022/01/07 06:28

すみません、タプル型になります。
meg_

2022/01/07 10:54

> なお、時間の部分は必要ないので削除して抽出したいです。 > 日付も一緒に入れたいのですが、方法がわかりません。 どっちですか?

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

会員登録して回答してみよう

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

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。