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

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

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

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

Q&A

解決済

3回答

382閲覧

[python]行で重複した値の処理

Dadada_c.

総合スコア59

Python 3.x

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

0グッド

1クリップ

投稿2018/08/10 01:28

編集2018/08/10 01:50

#行で重複した際の処理について

いつもありがとうございます!
今回はどうすればいいか全く歯がたたず・・・
コードの記載ができないですがご了承いただければ幸いです。。

上記のイメージの様なデータを読み込み、新しいcsvを出力予定です。

二つ目の画像のような状態にしたいのですが…
どうやって手を付けていいか全く想像がつきません。
ヒントを頂けると幸いです。

不躾な質問だとはひゃくも承知でございますが何卒よろしくお願い申し上げます。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2018/08/10 01:49

質問にある画像はExcelの画面のようですが、入力はCSVファイルなのですか? 「このような状態にしたい」というのが”何の”状態の事なのかが理解できかねます。
Dadada_c.

2018/08/10 01:52

ご回答ありがとうございます!エクセルで表示したほうがわかりやすいと思った為、エクセルでスクリーンショットしました。入力はcsv、出力もcsvです。修正をしましたが、1枚目の画像の様な状況から2枚目の画像の様な状況にしたいです。
guest

回答3

0

ベストアンサー

こういう事ですか?

Python

1mport pandas as pd 2 3df = pd.DataFrame({ 4 "A": ['AAA','AAA','BBB','CCC','DDD','DDD'], 5 "B": ['test_1','test_1','sample_1','hoge_1','hoge1','hoge_2'] 6}) 7 8ret = df.groupby('A')['B'].apply(lambda d: pd.Series(d).reset_index(drop=True)).unstack() 9print(ret) 10# 0 1 11#A 12#AAA test_1 test_1 13#BBB sample_1 None 14#CCC hoge_1 None 15#DDD hoge1 hoge_2

投稿2018/08/10 02:58

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Dadada_c.

2018/08/10 03:02

いつもありがとうございます!こういうことです!一度、これを参考にさせて頂き勉強してみます!本当にありがとうございました。
guest

0

pythonの辞書(dict)を利用して以下のようにすれば、できるのではないでしょうか。
1 mydictを用意する。
2 入力csvファイルをオープンする。
3 入力csvファイルから1行読み込む。
4 1列目をキー、2列目をデータとする。
5 キーがmydictになければ、mydictにキーを追加し、データをそのキーのリストとして作成する。
6 キーがmydictにあれば、そのキーのリストにデータを追加する。
7 3~6を入力csvファイルがEOFになるまで繰り返す。
8 入力csvファイルをクローズする。
9 mydictに希望のものが、キー:[リスト]と格納されているので、mydictから出力csvを作成する(mydictをループさせればよいので省略。出力順番をキーに依存するのであればそのことも考慮の事)。

具体的なpythonの文はdictを勉強するかググって調べてください。

投稿2018/08/10 02:09

ikapy

総合スコア1167

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

入力データのA列に関してはnumpyのnp.unique関数を使えばワンパンチです。

python

1import numpy as np 2 3data = np.array(["AAA","AAA","BBB","CCC","DDD","DDD"]) 4data = np.unique(data) 5 6print(data)

投稿2018/08/10 02:11

Ryupe

総合スコア426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問