Pandas DataFrame DataFrame.append()関数
-
pandas.DataFrame.append()
メソッドの構文: -
コード例:
pandas.DataFrame.append()
で 2つのDataFrame
を追加する -
コード例:Dataframes を追加し、
pandas.DataFrame.append()
でインデックスを無視する -
DataFrame.append()
メソッドでverify_integrity = True
を設定する -
コード例:異なる列で
DataFrame
を追加
pandas.DataFrame.append()
は、DataFrame を入力として受け取り、その行をメソッドを呼び出す DataFrame の行は、最終的に新しい DataFrame を返します。入力 DataFrame の列が呼び出し元の DataFrame に存在しない場合、列は DataFrame に追加され、欠落している値は NaN
に設定されます。
pandas.DataFrame.append()
メソッドの構文:
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)
パラメーター
other |
行を追加する DataFrame または Series、または Python 辞書のような入力 |
ignore_index |
ブール。True の場合、元の DataFrame のインデックスは無視されます。デフォルト値は False で、インデックスが使用されます。 |
verify_integrity |
ブール。True の場合、重複してインデックスを作成すると、ValueError が発生します。デフォルト値は False です。 |
sort |
ブール。列が整列していない場合は、元の DataFrame と他の DataFrame を並べ替えます。 |
コード例:pandas.DataFrame.append()
で 2つの DataFrame
を追加する
import pandas as pd
names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]
names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]
df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})
merged_df = df_1.append(df_2)
print(merged_df)
出力:
Name Salary
0 Hisila 23
1 Brian 30
2 Zeppy 21
Name Salary
0 Ram 22
1 Shyam 23
2 Hari 31
Name Salary
0 Hisila 23
1 Brian 30
2 Zeppy 21
0 Ram 22
1 Shyam 23
2 Hari 31
df_1
の最後に df_2
を追加し、両方の DataFrame
の行をマージする merged_df
を返します。ここで、merged_df
のインデックスは、それらの親 DataFrame と同じです。
コード例:Dataframes を追加し、pandas.DataFrame.append()
でインデックスを無視する
import pandas as pd
names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]
names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]
df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})
merged_df = df_1.append(df_2,ignore_index=True)
print(df_1)
print(df_2)
print( merged_df)
出力:
Name Salary
0 Hisila 23
1 Brian 30
2 Zeppy 21
Name Salary
0 Ram 22
1 Shyam 23
2 Hari 31
Name Salary
0 Hisila 23
1 Brian 30
2 Zeppy 21
3 Ram 22
4 Shyam 23
5 Hari 31
これは、df_1
の最後に df_2
を追加します。ここで、merged_df
は、append()
メソッドで ignore_index = True
引数を使用することにより、完全に新しいインデックスを取得します。
DataFrame.append()
メソッドで verify_integrity = True
を設定する
append()
メソッドで verify_integrity = True
を設定すると、重複するインデックスの ValueError
が取得されます。
import pandas as pd
names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]
names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]
df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2})
merged_df = df_1.append(df_2,verify_integrity=True)
print(df_1)
print(df_2)
print( merged_df)
出力:
ValueError: Indexes have overlapping values: Int64Index([0, 1, 2], dtype='int64')
df_1
と df_2
の要素はデフォルトで同じインデックスを持つため、ValueError
を生成します。このエラーを回避するには、verify_integrity
のデフォルト値、つまり verify_integrity = False
を使用します。
コード例:異なる列で DataFrame
を追加
別の列で DataFrame
を追加すると、この列が結果の DataFrame
に追加され、元の列または他の DataFrame
に存在しない列の対応するセルが NaN
に設定されます。
import pandas as pd
names_1=['Hisila', 'Brian','Zeppy']
salary_1=[23,30,21]
names_2=['Ram','Shyam',"Hari"]
salary_2=[22,23,31]
Age=[30,31,33]
df_1 = pd.DataFrame({'Name': names_1, 'Salary': salary_1})
df_2 = pd.DataFrame({'Name': names_2, 'Salary': salary_2,"Age":Age})
merged_df = df_1.append(df_2, sort=False)
print(df_1)
print(df_2)
print( merged_df)
出力:
Name Salary
0 Hisila 23
1 Brian 30
2 Zeppy 21
Name Salary Age
0 Ram 22 30
1 Shyam 23 31
2 Hari 31 33
Name Salary Age
0 Hisila 23 NaN
1 Brian 30 NaN
2 Zeppy 21 NaN
0 Ram 22 30.0
1 Shyam 23 31.0
2 Hari 31 33.0
ここで、Age
列は df_2
にのみ存在するため、df_1
の行は Age
列の NaN
値を取得します。
また、sort = False
を設定して、将来の Pandas バージョンで並べ替えが廃止されるという警告を抑制します。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn