pandas(python3)を使って、あるcsvファイルからデータを読み込み、
そのデータを編集して標準出力できたらと思っています。
・csvファイル
レコード数150〜300
カラム2
domain | value | |
---|---|---|
1 | aaa.xxx.co.jp | 500.12 |
2 | bbb.aaa.co.jp | 300.44 |
3 | ccc.xxx.co.jp | 30.22 |
4 | ddd.bbb.co.jp | 120.45 |
5 | eee.ccc.co.jp | 20.19 |
と、大体元となるデータはこんなイメージです。
domainはすべてユニークなのですが、上の表で"xxx"を含むdomainのvalueを足して集計したいです。
まとめたときに、domainの名前はできればリネームしたいです。
domain | value | |
---|---|---|
1 | xxx | 530.34 |
2 | bbb.aaa.co.jp | 300.44 |
3 | ddd.bbb.co.jp | 120.45 |
4 | eee.ccc.co.jp | 20.19 |
調べながらコードをかいているのですが、今回のような場合、どのような集計がシンプルにコードが収まるのでしょうか?
現状として、
DUPLICATE = ['xxx', 'yyy'] # csv読込 df = pd.read_csv('sample.csv') # 一旦、DUPLICATEにある文字列を含んでいるレコード(domain)をリネームしたい for n in DUPLICATE: for d in df['domain']: if n in d: df.at[d, 'domain'] = n
こんなところで止まってしまいました。
この出力では、リネームはされますが、元データの追加でindexがdomainで付与されて出力されました。
このコードを書いている時は、特定の単語が含まれているdomainを1つのレコードにまとめ(関数1)、valueを足す(関数2)で考えていました。
上記のようなデータを集計したい場合のもっと効率のよい考え方やコードの一例を可能でしたらご回答頂けたらと思います。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。