Pandas.DataFrame.Append の使用
pandas.DataFrame.append() 関数は、別の DataFrame の行を既存の DataFrame に追加するために使用されます。既存の DataFrame に列が存在しない場合は、既存の DataFrame に他の DataFrame 列が作成されます。この関数は、ディクショナリを追加して行を DataFrame に挿入する必要がある方法で使用します。
構文 :
以下は、pandas.DataFrame.append() 関数の実際の構文です。
パンダ。 データフレーム 。 追加する ( 他の 、 無視するインデックス 、 verify_integrity 、 選別 )
- 他の : これは、この DataFrame の行が既存の DataFrame に追加される別の DataFrame を参照します。単一行を追加する場合は、値の辞書をパラメータとして渡す必要があります。
- 無視するインデックス (デフォルト = False): このパラメータは、すでに行がある DataFrame に行を追加するときに使用されます。 「False」の場合、既存の行インデックスも追加されます。 「True」の場合、行には 0 から n-1 までのラベルが付けられます。 DataFrame にディクショナリを追加するときは、このパラメータが「True」に設定されていることを確認してください。それ以外の場合は、エラー タイプ「TypeError: Ignore_index=True の場合のみ辞書を追加できます」が発生します。
- verify_integrity パラメータ (デフォルト = False) を使用して、重複したインデックスをチェックできます。インデックスが重複しており、verify_integrity が「True」に設定されている場合、「ValueError: インデックスに重複する値があります」が返されます。
- 既存の DataFrame と別の DataFrame の列が整列していない場合、sort パラメーターを「True」(デフォルト = False) に設定すると、列を並べ替えることができます。
例 1: 単一の辞書を追加する
「Campaign_Name」、「Location」、「StartDate」、「Budget」の 4 つの列と 3 つの行を持つ Pandas DataFrame を作成します。この DataFrame に辞書を追加します。
輸入 パンダ
# DataFrame の作成 - 4 列 3 行のキャンペーン
運動 = パンダ。 データフレーム ( [ [ 「マーケティングキャンプ」 、 'インド' 、 「2023 年 12 月 1 日」 、 8000 】 、
[ 「セールスキャンプ」 、 'イタリア' 、 「2022 年 1 月 25 日」 、 10000 ] 、
[ 「他のキャンプ」 、 'アメリカ合衆国' 、 「2023 年 4 月 17 日」 、 2000年 ] 】 、
列 = [ 'キャンペーン名' 、 '位置' 、 '開始日' 、 '予算' 】 )
印刷する ( 運動 、 」 \n 」 )
# 単一行を追加
運動 = 運動。 追加する ( { 'キャンペーン名' : 「テクニカルキャンプ」 、 '位置' : 'アメリカ合衆国' 、 '開始日' : 「2023 年 5 月 12 日」 、 '予算' : 2000年 } 、 無視するインデックス = 真実 )
印刷する ( 運動 、 」 \n 」 )
出力 :
辞書が「Campaign」データフレームに追加されていることがわかります。インデックスは無視されるため、この新しい行のインデックスは 3 になります。
例 2: 複数の辞書を追加する
例 1 で作成したものと同じ DataFrame を使用し、pandas.DataFrame.append() 関数を使用して一度に 3 行を追加します。 ignore_index パラメータを「True」に設定します。
輸入 パンダ# DataFrame の作成 - 4 列 3 行のキャンペーン
運動 = パンダ。 データフレーム ( [ [ 「マーケティングキャンプ」 、 'インド' 、 「2023 年 12 月 1 日」 、 8000 】 、
[ 「セールスキャンプ」 、 'イタリア' 、 「2022 年 1 月 25 日」 、 10000 】 、
[ 「他のキャンプ」 、 'アメリカ合衆国' 、 「2023 年 4 月 17 日」 、 2000年 ] ] 、
列 = [ 'キャンペーン名' 、 '位置' 、 '開始日' 、 '予算' ] )
印刷する ( 運動 、 」 \n 」 )
運動 = 運動。 追加する ( { 'キャンペーン名' : 「テクニカルキャンプ」 、 '位置' : 'アメリカ合衆国' 、 '開始日' : 「2023 年 5 月 12 日」 、 '予算' : 2000年 } 、 無視するインデックス = 真実 )
運動 = 運動。 追加する ( { 'キャンペーン名' : 「マーケティングキャンプ」 、 '位置' : 'インド' 、 '開始日' : 「2023/06/23」 、 '予算' : 9000 } 、 無視するインデックス = 真実 )
運動 = 運動。 追加する ( { 'キャンペーン名' : 「Mセールスキャンプ」 、 '位置' : 'イタリア' 、 '開始日' : 「2023 年 1 月 24 日」 、 '予算' : 1200 } 、 無視するインデックス = 真実 )
印刷する ( 運動 )
出力 :
3、4、5 のインデックスを持つ 3 つの行が既存の DataFrame に次々に追加されます。
Pandas.Concat の使用
pandas.concat() 関数は、行または列に沿って 2 つ以上の DataFrame を連結します。したがって、辞書を DataFrame に変換し、2 つの DataFrame をこの関数に渡す必要があります。
構文 :
既存の DataFrame に辞書を追加します。
パンダ。 連結 ( [ 既存のデータフレーム 、 変換された辞書 ] 、 軸 = 0 、 無視するインデックス 、 verify_integrity )- axis = 0 の場合、連結は行に沿って行われます。これは小見出しであるため、必要な大文字を適用するように設定されている場合、連結は列に沿って行われます。簡潔にするために必要な記事を 1 に追加しました。
- ignore_index (デフォルト = False): このパラメータは、すでに行がある DataFrame に行を追加するときに使用されます。 「False」の場合、既存の行インデックスも追加されます。 「True」の場合、行には 0 から n-1 までのラベルが付けられます。
- verify_integrity パラメータ (デフォルト = False) を使用して、重複したインデックスをチェックできます。インデックスが重複しており、verify_integrity が「True」に設定されている場合、「ValueError: インデックスに重複する値があります」が返されます。
例 1: 単一の辞書を追加する
「Campaign_Name」、「Location」、「StartDate」、「Budget」の 4 つの列と 3 つの行を持つ Pandas DataFrame を作成します。 pandas.concat() 関数を使用して、1 つの辞書 (DataFrame) を行としてこの DataFrame に追加します。
輸入 パンダ# DataFrame の作成 - 4 列 3 行のキャンペーン
運動 = パンダ。 データフレーム ( [ [ 「マーケティングキャンプ」 、 'インド' 、 「2023 年 12 月 1 日」 、 8000 】 、
[ 「セールスキャンプ」 、 'イタリア' 、 「2022 年 1 月 25 日」 、 10000 】 、
[ 「他のキャンプ」 、 'アメリカ合衆国' 、 「2023 年 4 月 17 日」 、 2000年 】 】 、
列 = [ 'キャンペーン名' 、 '位置' 、 '開始日' 、 '予算' 】 )
印刷する ( 運動 、 」 \n 」 )
Dictionary_from_DataFrame = パンダ。 データフレーム ( [ { 'キャンペーン名' : 「サービスキャンプ」 、 '位置' : 'アメリカ合衆国' 、 '開始日' : 「2023 年 4 月 17 日」 、 '予算' : 1000 } 】 )
# 単一行を追加
運動 = パンダ。 連結 ( [ 運動 、 Dictionary_from_DataFrame 】 、 軸 = 0 )
印刷する ( 運動 、 」 \n 」 )
出力 :
辞書が「Campaign」データフレームに追加されていることがわかります。この新しい行のインデックスは無視されないため、0 になります。
例 2: 複数の辞書を追加する
前の DataFrame を使用し、インデックスを無視して 3 つの辞書 (DataFrame) を追加します。
輸入 パンダ# DataFrame の作成 - 4 列 3 行のキャンペーン
運動 = パンダ。 データフレーム ( [ [ 「マーケティングキャンプ」 、 'インド' 、 「2023 年 12 月 1 日」 、 8000 】 、
[ 「セールスキャンプ」 、 'イタリア' 、 「2022 年 1 月 25 日」 、 10000 】 、
[ 「他のキャンプ」 、 'アメリカ合衆国' 、 「2023 年 4 月 17 日」 、 2000年 】 】 、
列 = [ 'キャンペーン名' 、 '位置' 、 '開始日' 、 '予算' 】 )
印刷する ( 運動 、 」 \n 」 )
Dictionary_from_DataFrame = パンダ。 データフレーム ( [ { 'キャンペーン名' : 「テックキャンプ」 、 '位置' : 'アメリカ合衆国' 、 '開始日' : 「2023 年 5 月 17 日」 、 '予算' : 1000 } 、
{ 'キャンペーン名' : 「社会サービス」 、 '位置' : '日本' 、 '開始日' : 「2023 年 4 月 17 日」 、 '予算' : 200 } 、
{ 'キャンペーン名' : 「セールスキャンプ」 、 '位置' : 'アメリカ合衆国' 、 '開始日' : 「2023 年 4 月 18 日」 、 '予算' : 500 } 】 )
# 複数の行を追加する
運動 = パンダ。 連結 ( [ 運動 、 Dictionary_from_DataFrame 】 、 軸 = 0 、 無視するインデックス = 真実 )
印刷する ( 運動 、 」 \n 」 )
出力 :
3 つの辞書が「Campaign」データフレームに追加されていることがわかります。 ignore_index パラメータが「False」に設定されているため、これらのディクショナリのインデックスは 3、4、および 5 になります。
結論
単一または複数の辞書は、pandas.DataFrame.append() 関数と pandas.concat() 関数を使用して DataFrame に追加されます。新しい行のインデックスを一意にするには、pandas.concat() 関数でignore_index パラメーターを「True」に設定します。 pandas.DataFrame.append() 関数を使用するときに、ignore_index パラメーターを「True」に設定します。それ以外の場合は、TypeError が発生します。