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

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

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

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

2554閲覧

pandasのDataFrameを使った列、行の変形処理について

s-hara

総合スコア52

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2018/09/27 04:26

元となるデータフレームを以下のように生成します。

import pandas as pd pd = pd.DataFrame( [['A001','S001','●'], [['A002','S001','×'], [['A003','S001','●'], [['A001','S002','●'], [['A002','S002','●'], [['A003','S002','●'], columns=['col1','col2','col3'])

生成されるデータフレームは以下の通り。

  col1 col2 col3 0  A001 S001 ● 1  A002 S001 × 2  A003 S001 ● 3  A001 S002 ● 4  A002 S002 ● 5  A003 S002 ●

上記データフレーム「pd」をcol2毎(重複のない行にする)にcol1の値を列に変換してマトリックス表のような形にしたい。

※1列目をcol2の値を重複を排除した値にする。(S001,S002)
※2列目以降の列名をcol1の値にする。(A001,A002,A003)
※各要素の値はcol2毎に各col1の値であった列(A001,A002,A003)に対応する値(● or x)を埋め込む。

       [  col1 ] [col2]  A001 A002 A003    S001   ●  ×  × →値を[col3]の値にする。    S002   ●  ●   ●

結合、グループや行、列変換、INDEXなどいろいろ調べてみましたがめぼしいやり方が思いつかず、実現可能な方法がありましたらご教授いただけますでしょうか。

宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

pandas.DataFrame.pivot()をお使いください

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pivot.html

Python

1import pandas as pd 2df = pd.DataFrame( 3 [['A001','S001','●'], 4 ['A002','S001','×'], 5 ['A003','S001','●'], 6 ['A001','S002','●'], 7 ['A002','S002','●'], 8 ['A003','S002','●']], 9 columns=['col1','col2','col3']) 10 11print(df.pivot(index='col2', columns='col1', values='col3')) 12#col1 A001 A002 A003 13#col2 14#S001 ● × ● 15#S002 ● ● ●

投稿2018/09/27 04:30

編集2018/09/27 04:34
magichan

総合スコア15898

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

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

s-hara

2018/09/27 04:57

早々のご回答ありがとうございました。 スンナリ解決致しました。 pivotなんて便利な機能があったんですね・・ドキュメント読み込み不足でした・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問