必要なデータを作成する。
エクセルファイルや、CSVファイルからデータを読み込んでもよいが、
今回は、データの作成から行ってみます。
架空のアイドルチームと髪の毛の色のデータを作成していきます。
list1=[["purple","yellow","red"], ["indigo","Light blue","pink"],
["black","red","black"],["white","bright green","gold"],
["pink","purple","green"],["skyblue","pink","green"]]
index1 = ["チーム1", "チーム2", "チーム3","チーム4","チーム5","チーム6"]#行
columns1 =["1人目", "2人目", "3人目"]#列
dataset = pd.DataFrame(data=list1, index=index1, columns=columns1)
dataset
以下のように出力されます。
1人目 | 2人目 | 3人目 | |
---|---|---|---|
チーム1 | purple | yellow | red |
チーム2 | indigo | Light blue | pink |
チーム3 | black | red | black |
チーム4 | white | bright green | gold |
チーム5 | pink | purple | green |
チーム6 | skyblue | pink | green |
データの前処理いろいろ
ここで、分割するときに、ilocで指定する際に、iloc[〇,△]
〇は、行の指定を行い、△は列の指定を行う。
X = dataset.iloc[:3,:].values
今回〇を「:3」、△を「:」とすることで、
〇は、最初の1行目から3行目までのデータを取得し
△は、「:」ですべての行のデータを取得することを意味している。
出力結果は以下のようになりました。
1人目 | 2人目 | 3人目 | |
---|---|---|---|
チーム1 | purple | yellow | red |
チーム2 | indigo | Light blue | pink |
チーム3 | black | red | black |
X = dataset.iloc[:-1,:].values
「最初から最後の1つ手前(チーム5)まで取得できます。」
1人目 | 2人目 | 3人目 | |
---|---|---|---|
チーム1 | purple | yellow | red |
チーム2 | indigo | Light blue | pink |
チーム3 | black | red | black |
チーム4 | white | bright green | gold |
チーム5 | pink | purple | green |
X = dataset.iloc[2:,:].values
「チーム3から最後まで取得することができます。」
1人目 | 2人目 | 3人目 | |
---|---|---|---|
チーム3 | black | red | black |
チーム4 | white | bright green | gold |
チーム5 | pink | purple | green |
チーム6 | skyblue | pink | green |
今回の重要なこと
ここで、「:3」で最初から3つめまで、「:-1」で最初から最後を抜かしたところまで、
「2:」でチーム3から最後まで取得できることがわかりましたが、途中から途中までのデータを取得するには
と疑問に思いました。
今回のケースでは、チーム2、チーム3、チーム4、チーム5だけ取得したい場合の書き方については、
X = dataset.iloc[[1,2,3,4],:].values
このように、[〇,△]の〇のなかにさらに、[]を入れ指定したい行を選択するとよい
(※ただし、先頭は、0から数えるため注意)
(※ほかに良い方法あり、記事の下部「追記2」に記載)
1人目 | 2人目 | 3人目 | |
---|---|---|---|
チーム2 | indigo | Light blue | pink |
チーム3 | black | red | black |
チーム4 | white | bright green | gold |
チーム5 | pink | purple | green |
まとめ
行を指定する際に、行の途中から途中までを取得したい場合には、
X = dataset.iloc[[1,2,3,4],:].values
[行,列]の行にさらに[]を入れ、2重構造にすれば、指定することができます。
追記)
Python形式でのコードチャンクがpythonのコードと
認識するためには、「```python」と書くことで認識をできました。
また、出力結果は、「|」を用い、表現することもできました。
追記2)
X = dataset.iloc[1:5,:].values
上記のように、iloc[〇,△]にあたる〇の部分において、
1:5のようにすると、取得したい、
チーム2、チーム3、チーム4、チーム5の情報を得ることが可能になる。