PandasのSeriesに要素を追加する方法:pd.concat()の使い方を解説
この記事では、PandasのSeries(シリーズ)に要素を追加する方法を解説します。従来は append() 関数がよく使われていましたが、このメソッドはPandas 1.4.0で非推奨となり、2.0以降では削除されています。現在は pd.concat() を使うのが標準的な方法です。
なお、既存のSeriesに連結できるのは「別のSeries」または「Seriesのリスト/タプル」のみです。単一の値を追加したい場合は、その値をSeriesに変換してから連結します。
処理の手順
Step 1: Pandasシリーズ s1 を定義する。 Step 2: 別のシリーズ s2 を定義する。 Step 3: pd.concat() を使って s1 と s2 を連結する。 Step 4: 連結後の最終的なシリーズを出力する。
サンプルコード
import pandas as pd
s1 = pd.Series([10, 20, 30, 40, 50])
s2 = pd.Series([11, 22, 33, 44, 55])
print("S1:\n", s1)
print("\nS2:\n", s2)
# 現在推奨される連結方法
appended_series = pd.concat([s1, s2])
print("\nFinal Series after appending:\n", appended_series)出力結果
S1: 0 10 1 20 2 30 3 40 4 50 dtype: int64 S2: 0 11 1 22 2 33 3 44 4 55 dtype: int64 Final Series after appending: 0 10 1 20 2 30 3 40 4 50 0 11 1 22 2 33 3 44 4 55 dtype: int64
旧バージョンでの書き方(参考)
Pandas 1.x 以前の環境では、以下のように append() メソッドでSeries同士を連結できました。
appended_series = s1.append(s2)
ただし、前述の通り現在のバージョンではエラーになるため、新規コードでは必ず pd.concat() を使用してください。
インデックスの重複に注意
連結後のSeriesは元のインデックスがそのまま保持されるため、上記の出力例のようにインデックスが重複して表示されます。0から始まる連番でインデックスを振り直したい場合は、ignore_index=True を指定しましょう。
appended_series = pd.concat([s1, s2], ignore_index=True)
これにより、追加後のSeriesにもクリーンな連番インデックスが割り当てられ、後続のデータ処理がしやすくなります。
-
PandasのSeriesデータをMatplotlibで棒グラフとして描画する方法
Matplotlibを使ってPandasのSeriesやDataFrameから棒グラフを描画するのは非常に簡単です。本記事では、基本的な手順とサンプルコードを通じて、その方法をわかりやすく解説します。 棒グラフを描画する基本手順 辞書の作成: 1から10までの範囲の値を持つ、複数のキーからなる辞書を作成します。各キーがグラフの系列名になります。 DataFrameの作成: 作成した辞書をもとに、PandasのDataFrameを生成します。 棒グラフの作成: plot()メソッドにkind=barを指定して棒グラフを描画します。 図の表示: show()メソッドを呼び出して、作成したグラフを
-
Pandasの時系列プロットに垂直線を描画する方法
Pandasを使ってデータフレームを作成し、Matplotlibのaxvline()メソッドを利用することで、時系列プロット上の任意の位置に垂直線を簡単に追加できます。本記事では、その具体的な手順をサンプルコード付きで解説します。手順Pandasを使用して、日付をインデックスとしたデータフレームを作成します。データフレームを基に、Matplotlibで時系列の折れ線グラフをプロットします。axvline()メソッドを使い、指定した日付の位置に緑色の破線(linestyle=dashed)で垂直線を追加します。同様にaxvline()を使い、別の日付の位置に赤色の破線で垂直線を追加します。plt