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

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

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

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

Python

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

pandas

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

Q&A

解決済

3回答

817閲覧

Pythonのライブラリpandasについて

TestUser2009

総合スコア14

Python 3.x

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

Python

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

pandas

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

0グッド

0クリップ

投稿2020/12/22 13:24

以下のWebサイトでPandasを学んでおりましたが、1点すごくどうでも良いところで疑問が、、、。

https://www.codexa.net/kaggle-titanic-beginner/

以下のコードについて、引数のmy_predictionとPassengerIDの順で入れているのに
実際の中身は逆なのです。
これはそういう仕様なのでしょうか?
pd.DataFrame([numpyのarray],[numpyのarray],[カラム名の指定])
にすると、引数の前後が逆になる仕様はおかしい気が、、、。

もやもやするので、ご教示いただけますと幸いです。。。

# my_prediction(予測データ)とPassengerIdをデータフレームへ落とし込む my_solution = pd.DataFrame(my_prediction, PassengerId, columns = ["Survived"])

以下、my_solutionの中身

 Survived

892 0
893 0
894 1
895 1
896 1
... ...
1305 0
1306 1
1307 0
1308 0
1309 0

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

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

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

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

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

Daregada

2020/12/22 13:48

PassengerIDをindexに指定していませんか?
TestUser2009

2020/12/22 13:56

早速ご回答いただき、ありがとうございます。 my_solution = pd.DataFrame(my_prediction,index=passengerId,columns=['Survived']) としているのであれば、passengerIdがindexになっても疑問はないのですが 実際のところdataframeの引数に二つのarrayを入れている段階ではindexを指定していないので、、、 どこか指定している箇所があるでしょうか。以上のwebサイトどおりにコーディングしているのですが、、、
guest

回答3

0

ドキュメントには下記説明があります。

pandas.DataFrame

class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

my_solution = pd.DataFrame(my_prediction, PassengerId, columns = ["Survived"])
・my_prediction → data
・PassengerId → index
と解釈されて第二引数がDataFrameのindexに設定されているのだと思います。

投稿2020/12/22 14:16

meg_

総合スコア10577

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

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

TestUser2009

2020/12/22 14:25

ご回答いただき、ありがとうございます! 引数が順番に処理されているということですね。 であればcolumns = ['Survive']も省略して['Survived']もできるのかと思い試してみたらできました。 とてもよく理解できました。
TestUser2009

2020/12/22 14:28

お三方の回答を足してよく理解することができました。 ベストアンサーはとても迷いましたが、一番最初にご回答いただいた方に決定させていただきました。 ありがとうございます!
guest

0

ベストアンサー

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

pandas.DataFrame — pandas 1.1.5 documentation

ですから、「index=」を書かなくでも、2番目の引数に指定したPassengerIdがindexに使われます。print(my_solution.index)とでもしてindexを表示してみればわかります。

投稿2020/12/22 14:13

Daregada

総合スコア11990

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

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

TestUser2009

2020/12/22 14:23

ご回答いただき、ありがとうございます! 私も全く同じドキュメントを見ていましたが、見方が間違っていたようです。 上記の引数は順番に適応されるのですね。 よく理解できました。
guest

0

以下、仮説を述べるので無視して頂いても構いません。

python

1df = pd.DataFrame(a, columns=['a']) 2df.head()

上記の式の場合は、aというデータをpandasの形式に変換することを意味します。この時、columnsで指定しているのは、aのカラム名です。

python

1df = pd.DataFrame(a, b, columns=['b']) 2df.head()

上記の場合は、一番上のコードと同様ですが、bの役割は何かということです。
結果から判断すると、index値に変換されています。
下記コードで確認をお願いします。

python

1import numpy as np 2 3a = np.array([1, 2, 3, 4]) 4b = np.array([0, 1, 0, 1]) 5 6import pandas as pd 7 8df = pd.DataFrame(a, b, columns=['a']) 9print(df.index) 10df.head()

最後に、TestUser2009さんが求めている結果は、下記コードで得られることが可能に感じます。

python

1df = pd.concat([pd.DataFrame(a), pd.DataFrame(b)], axis=1) 2df.columns = ['a', 'b'] 3df.head()

投稿2020/12/22 14:11

HelloQ

総合スコア81

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

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

TestUser2009

2020/12/22 14:25

ご回答いただき、ありがとうございます! 具体的なソースコードも記述いただき、とてもたすかります。 最後のコードは特に理解が深まりよかったです。
TestUser2009

2020/12/22 14:28

お三方の回答を足してよく理解することができました。 ベストアンサーはとても迷いましたが、一番最初にご回答いただいた方に決定させていただきました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問