Pandas DataFrame.append(~)
方法將新行附加到源 DataFrame。要添加的新行可以采用 DataFrame、Series 或數組的形式。
請注意,返回了新的 DataFrame,並且源 DataFrame 保持不變。
參數
1.other
| DataFrame
或命名為 Series
或 dict-like
或 list
其中
要附加到源 DataFrame 的數據。
2. ignore_index
| boolean
| optional
-
如果
True
,則生成的索引標簽將是默認的整數索引。 -
如果
False
,則將使用other
生成的索引標簽。
默認情況下,ignore_index=False
。
3. verify_integrity
| boolean
| optional
如果 True
,則重複的索引名稱將引發錯誤。默認情況下,verify_integrity=False
。
4. sort
| boolean
| optional
是否按列標簽對生成的 DataFrame 中的列進行排序。默認情況下,sort=False
。
警告
為了提高性能,請考慮一次附加所有行,而不是重複調用 append(~)
。
返回值
附加了新行的新DataFrame。
例子
列標簽匹配的情況
考慮以下數據幀:
df = pd.DataFrame({"A":[3,4], "B":[5,6]})
df_other = pd.DataFrame({"A":[7,8], "B":[9,10]}, index=["a","b"])
[df] [df_other]
A B A B
0 3 5 a 7 9
1 4 6 b 8 10
請注意 df
和 df_other
如何共享相同的列標簽。如果是這種情況,那麽 append(~)
將導致垂直堆疊,如下所示:
df.append(df_other)
A B
0 3 5
1 4 6
a 7 9
b 8 10
列標簽不匹配的情況
考慮 other
不共享相同列標簽的情況:
df = pd.DataFrame({"A":[3,4], "B":[5,6]})
df_other = pd.DataFrame({"B":[7,8], "C":[9,10]}, index=["a","b"])
[df] [df_other]
A B B C
0 3 5 a 7 9
1 4 6 b 8 10
此處, df
和 df_other
都有列 B
,但列 A
和 C
不匹配。在這種情況下調用 append(~)
將導致帶有 NaN
的條目:
df.append(df_other)
A B C
0 3.0 5 NaN
1 4.0 6 NaN
a NaN 7 9.0
b NaN 8 10.0
追加字典列表
考慮以下 DataFrame :
df = pd.DataFrame({"A":[3,4], "B":[5,6]})
df
A B
0 3 5
1 4 6
要使用字典列表追加:
df.append([{"A":7,"B":8}, {"A":9,"B":10}])
A B
0 3 5
1 4 6
0 7 8
1 9 10
Pandas 保證行將始終根據列表的順序附加。
指定ignore_index
再次考慮以下兩個DataFrames:
df = pd.DataFrame({"A":[3,4], "B":[5,6]})
df_other = pd.DataFrame({"A":[7,8], "B":[9,10]}, index=["a","b"])
[df] [df_other]
A B A B
0 3 5 a 7 9
1 4 6 b 8 10
默認情況下, ignore_index=False
,這意味著將保留 other
的索引:
df.append(df_other)
A B
0 3 5
1 4 6
a 7 9
b 8 10
請注意索引 a
和 b
的名稱是如何保留的。
我們可以設置 ignore_index=True
忽略 other
的索引:
df.append(df_other, ignore_index=True)
A B
0 3 5
1 4 6
2 7 9
3 8 10
請注意,新列的索引是 2
和 3
,而不是原來的 a
和 b
。
指定verify_integrity
考慮以下兩個 DataFrame:
df = pd.DataFrame({"B":[3,4], "C":[5,6]}, index=["a","b"])
df_other = pd.DataFrame({"B":[7,8], "C":[9,10]}, index=["b","c"])
[df] [df_other]
B C B C
a 3 5 b 7 9
b 4 6 c 8 10
請注意這兩個 DataFrames 都有索引 b
。
默認情況下, verify_integrity=False
,這意味著結果 DataFrame 中允許重複索引:
df.append(df_other) # verify_integrity=False
B C
a 3 5
b 4 6
b 7 9
c 8 10
相反,如果存在重複索引,設置 verify_integrity=True
將引發錯誤:
df.append(df_other, verify_integrity=True)
ValueError: Indexes have overlapping values: Index(['b'], dtype='object')
按列標簽排序
默認情況下, sort=False
,這意味著生成的 DataFrame 的列不會按列標簽排序:
df = pd.DataFrame({"C":[3,4], "A":[5,6]})
df.append([{"B":7,"E":8}], sort=False)
C A B E
0 3.0 5.0 NaN NaN
1 4.0 6.0 NaN NaN
0 NaN NaN 7.0 8.0
通過設置 sort=True
,生成的 DataFrame 的列可以按列標簽排序:
df = pd.DataFrame({"C":[3,4], "A":[5,6]})
df.append([{"B":7,"E":8}], sort=True)
A B C E
0 5.0 NaN 3.0 NaN
1 6.0 NaN 4.0 NaN
0 NaN 7.0 NaN 8.0
相關用法
- Python Pandas DataFrame apply方法用法及代碼示例
- Python Pandas DataFrame applymap方法用法及代碼示例
- Python Pandas DataFrame agg方法用法及代碼示例
- Python Pandas DataFrame all方法用法及代碼示例
- Python Pandas DataFrame add方法用法及代碼示例
- Python Pandas DataFrame asfreq方法用法及代碼示例
- Python Pandas DataFrame any方法用法及代碼示例
- Python PySpark DataFrame alias方法用法及代碼示例
- Python Pandas DataFrame asof方法用法及代碼示例
- Python Pandas DataFrame add_prefix方法用法及代碼示例
- Python Pandas DataFrame add_suffix方法用法及代碼示例
- Python Pandas DataFrame at屬性用法及代碼示例
- Python Pandas DataFrame axes屬性用法及代碼示例
- Python Pandas DataFrame astype方法用法及代碼示例
- Python Pandas DataFrame align方法用法及代碼示例
- Python Pandas DataFrame assign方法用法及代碼示例
- Python Pandas DataFrame at_time方法用法及代碼示例
- Python Pandas DataFrame abs方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
- Python Pandas DataFrame pop方法用法及代碼示例
- Python Pandas DataFrame nsmallest方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame items方法用法及代碼示例
- Python Pandas DataFrame max方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | append method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。