Pandas の DataFrame に辞書を追加する

Pandas No Dataframe Ni Ci Shuwo Zhui Jiasuru



pandas.DataFrame.append() 関数と pandas.concat() 関数を使用して既存の Pandas DataFrame に辞書を追加する方法を例とともに説明します。ここで、ディクショナリはキー:値のペアを参照します。キーは DataFrame に存在する既存の列ラベルを参照し、値は行に追加されます。また、複数の辞書を Pandas DataFrame に追加する例も見ていきます。

Pandas.DataFrame.Append の使用

pandas.DataFrame.append() 関数は、別の DataFrame の行を既存の DataFrame に追加するために使用されます。既存の DataFrame に列が存在しない場合は、既存の DataFrame に他の DataFrame 列が作成されます。この関数は、ディクショナリを追加して行を DataFrame に挿入する必要がある方法で使用します。

構文 :







以下は、pandas.DataFrame.append() 関数の実際の構文です。



パンダ。 データフレーム 追加する ( 他の 無視するインデックス verify_integrity 選別 )
  1. 他の : これは、この DataFrame の行が既存の DataFrame に追加される別の DataFrame を参照します。単一行を追加する場合は、値の辞書をパラメータとして渡す必要があります。
  2. 無視するインデックス (デフォルト = False): このパラメータは、すでに行がある DataFrame に行を追加するときに使用されます。 「False」の場合、既存の行インデックスも追加されます。 「True」の場合、行には 0 から n-1 までのラベルが付けられます。 DataFrame にディクショナリを追加するときは、このパラメータが「True」に設定されていることを確認してください。それ以外の場合は、エラー タイプ「TypeError: Ignore_index=True の場合のみ辞書を追加できます」が発生します。
  3. verify_integrity パラメータ (デフォルト = False) を使用して、重複したインデックスをチェックできます。インデックスが重複しており、verify_integrity が「True」に設定されている場合、「ValueError: インデックスに重複する値があります」が返されます。
  4. 既存の 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
  1. axis = 0 の場合、連結は行に沿って行われます。これは小見出しであるため、必要な大文字を適用するように設定されている場合、連結は列に沿って行われます。簡潔にするために必要な記事を 1 に追加しました。
  2. ignore_index (デフォルト = False): このパラメータは、すでに行がある DataFrame に行を追加するときに使用されます。 「False」の場合、既存の行インデックスも追加されます。 「True」の場合、行には 0 から n-1 までのラベルが付けられます。
  3. 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 が発生します。