
ゆうき( @BASEBALLY15 )です^^
データフレームの指定した列を変更したいのですが,どうすればよいか分かりません・・・
そうなんですね^^
それでは,今回は『データフレームの列を置換する方法』についてご説明します!
お願いします・・・

目次
データフレームの列を置換してみた!

今回は,上の図のように,2列目と3列目の値を替えたいと思います.
たった1行でデータフレームの列を置換することが出来るので,ぜひ使ってみてください^^
それでは,コードを見ていきましょう⤵
ライブラリ
まずは,今回使うライブラリをご紹介します.
import pandas as pd
from pandas import DataFrame, Series
import numpy as np
#正規性のあるランダムな値を用意
from numpy.random import randn
#ランダムな値を用意
from random import random
コード
ますは,置換する前のデータフレームを用意します.
今回は,4列のデータフレームを作ります.
そして,最終的に指定した列を置換します.
置換する前のデータフレームを用意しよう(準備)
それでは,置換する前のデータフレームを作っていきましょう.
1列目⤵
#1から10までの数字を用意(内包表記)
num1 = [i for i in range(1, 11, 1)]
#表示
num1
実行結果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2列目⤵
#1から20まで2刻みの数字を用意
num2 = [j for j in range(1, 20, 2)]
#表示
num2
実行結果
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
3列目⤵
#正規分布になるランダムな数字を用意
num3 = randn(10)
#表示
num3
実行結果
array([ 0.59840685, 1.64238462, 0.39814391, 0.87122436, 2.8377039 , -1.09733489, -0.72677319, 1.36815504, 1.11262481, 0.33854676])
4列目⤵
#ランダムな数字を10個用意
num4 = [random() for i in range(10)]
#表示
num4
実行結果
[0.7638483116223036, 0.025646815220969676, 0.7462628141200512, 0.7659286293019122, 0.02325626585814211, 0.1846831214851531, 0.596524341248284, 0.6865225837521409, 0.34800295035796414, 0.35522239924742116]
データフレームを表示してみよう!(準備)
それでは,上で作った4つリストをデータフレームに変換します.
ちなみに,それぞれのカラム名を自分で決めるために,辞書型にしました.
#データフレーム化
df = DataFrame({"Num1":num1, "Num2":num2, "Num3":num3, "Num4":num4})
#表示
df
Num1 | Num2 | Num3 | Num4 | |
---|---|---|---|---|
0 | 1 | 1 | 0.598407 | 0.763848 |
1 | 2 | 3 | 1.642385 | 0.025647 |
2 | 3 | 5 | 0.398144 | 0.746263 |
3 | 4 | 7 | 0.871224 | 0.765929 |
4 | 5 | 9 | 2.837704 | 0.023256 |
5 | 6 | 11 | -1.097335 | 0.184683 |
6 | 7 | 13 | -0.726773 | 0.596524 |
7 | 8 | 15 | 1.368155 | 0.686523 |
8 | 9 | 17 | 1.112625 | 0.348003 |
9 | 10 | 19 | 0.338547 | 0.355222 |
これで,置換する前のデータフレームは完成しました^^
置換するためのデータフレームを用意しよう!(準備)
次に,置換するためのデータフレームを2つ用意します.
最終的には,ここで作ったデータフレームを表示させます.
1つ目⤵
#置換するためのリストを用意
change1 = [a for a in range(1, 30, 3)]
#データフレーム化
change1_df = DataFrame({"Change1":change1})
#表示
change1_df
Change1 | |
---|---|
0 | 1 |
1 | 4 |
2 | 7 |
3 | 10 |
4 | 13 |
5 | 16 |
6 | 19 |
7 | 22 |
8 | 25 |
9 | 28 |
2つ目⤵
change2 = [b for b in range(1, 40, 4)]
#データフレーム化
change2_df = DataFrame({"Change2":change2})
#表示
change2_df
Change2 | |
---|---|
0 | 1 |
1 | 5 |
2 | 9 |
3 | 13 |
4 | 17 |
5 | 21 |
6 | 25 |
7 | 29 |
8 | 33 |
9 | 37 |
これで,置換するための準備が出来ました.
データフレームの列を置換してみよう!(本題)
それでは,データフレームの列を置換します.
#値を置換する
df.iloc[:, 2] = change1
df.iloc[:, 3] = change2
0から数えて2つ目の列を『change1』に,
3つ目の列を『change2』に置換します.
この結果を表示してみます.
#表示
df
すると,このように,3列目と4列目を置換することが出来ました.
Num1 | Num2 | Num3 | Num4 | |
---|---|---|---|---|
0 | 1 | 1 | 1 | 1 |
1 | 2 | 3 | 4 | 5 |
2 | 3 | 5 | 7 | 9 |
3 | 4 | 7 | 10 | 13 |
4 | 5 | 9 | 13 | 17 |
5 | 6 | 11 | 16 | 21 |
6 | 7 | 13 | 19 | 25 |
7 | 8 | 15 | 22 | 29 |
8 | 9 | 17 | 25 | 33 |
9 | 10 | 19 | 28 | 37 |
終わりに
今回は,データフレームの列を置換する方法についてご紹介しました.
最初のうちは,データフレームの扱いに戸惑うこともあると思いますが,
使っていると慣れてくるので,ぜひこのブログを参考に学習してみてください^^
それでは・・・