演習課題「シリーズとデータフレームの連結」
右のコードエリアには、データフレームstudentと、シリーズheightが定義されています。
student,heightをconcatメソッドを使用して横方向に連結してください。
採点の前にはすべてのセルを実行し、ノートブックを保存してください。
期待する出力値
age lang height
Kirishima 18.0 c NaN
Midorikawa 20.0 java 168.0
Rokumura NaN NaN 175.0
#13:シリーズとデータフレームの連結
このチャプターでは、シリーズとデータフレームを連結する方法について学習します。
concat関数を用いてシリーズとデータフレームを連結することもできるimport pandas as pd
student = pd.DataFrame({"age": [15, 16], "lang": ["ruby", "python"]}, index=["Kirishima", "Rokumura"])
message = pd.Series(["Hello, World", "Ohayo"], index=["Midorikawa", "Kirishima"], name="message")
print(pd.concat([student, message], axis=1))
動画のコード(下記コード1)を実行したときに警告として出力されるFutureWarningについて説明します。
このFutureWarningは、現在のバージョンでの動作が将来のバージョンで変更されるときに出力されます。
今回は「concatメソッドを実行したときに、列を名前の昇順にソートしたが、将来のバージョンではデフォルトでソートしない」旨が書かれています。
今回のコードでFutureWarningがでないようにするには、次の2通りの方法があります。
・concatメソッドを使う際に、sort=True
を追加する(現在のバージョンのデフォルトの動作と同じ結果になる)(下記コード2)
・concatメソッドを使う際に、sort=False
を追加する(将来のバージョンのデフォルトの動作と同じ結果になる)
※ paizaラーニングの環境でのバージョンでは出力されますが、他の環境でバージョンが異なる場合は出力されないこともあります。
コード1:FutureWarningが発生するコードimport pandas as pd
fruits1 = pd.DataFrame({"name": ["apple", "orange"], "quantity": [1, 2]})
fruits2 = pd.DataFrame({"name": ["banana", "melon"], "value": [100, 1000]})
print(pd.concat([fruits1, fruits2]))
コード2:FutureWarningが発生しないようにしたコードimport pandas as pd
fruits1 = pd.DataFrame({"name": ["apple", "orange"], "quantity": [1, 2]})
fruits2 = pd.DataFrame({"name": ["banana", "melon"], "value": [100, 1000]})
print(pd.concat([fruits1, fruits2], sort=True))