Pandas DataFrame DataFrame.append() 函数
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 Dictionary-like,其行将被追加 |
ignore_index |
布尔型。如果是 True ,则忽略原始 DataFrame 中的索引,默认值是 False ,表示使用索引。默认值是 False ,意味着使用索引 |
verify_integrity |
布尔型。如果是 True ,在创建有重复的索引时引发 ValueError 。默认值是 False |
sort |
布尔型。如果列不对齐,它将对原始数据和其他 DataFrame 进行排序 |
示例代码:用 pandas.DataFrame.append()
添加两个 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
,并返回 merged_df
,合并两个 DataFrames 的行。在这里,merged_df
的索引与它们的父 DataFrames 相同。
示例代码: 用 pandas.DataFrame.append()
来追加 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,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_2
追加到 df_1
的末尾,这里 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
或其他 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
这里,df_1
的行得到 Age
列的 NaN
值,因为 Age
列只存在于 df_2
中。
我们还设置了 sort=False
,以使排序在未来的 Pandas 版本中被取消的警告保持沉默。
相关文章
Pandas DataFrame DataFrame.apply() 函数
发布时间:2024/04/22 浏览次数:172 分类:Python
-
Pandas DataFrame apply()函数将输入的函数应用到 Pandas DataFrame 的每一个沿行或沿列的元素。
Pandas DataFrame DataFrame.aggregate() 函数
发布时间:2024/04/22 浏览次数:98 分类:Python
-
Pandas DataFrame aggregate()函数对 DataFrame 的列或行进行聚合。
Pandas DataFrame DataFrame.to_excel() 函数
发布时间:2024/04/22 浏览次数:68 分类:Python
-
DataFrame.to_excel()函数将 DataFrame 数据转储到 excel 文件中,单张或多张。
Pandas DataFrame DataFrame.sort_values() 函数
发布时间:2024/04/22 浏览次数:70 分类:Python
-
DataFrame sort_values()函数对给定的 DataFrame 按升序或降序进行排序。
Pandas DataFrame DataFrame.set_index() 函数
发布时间:2024/04/22 浏览次数:69 分类:Python
-
Pandas DataFrame 的 set_index 方法用于将列或数组设置为 DataFrame 的索引。
Pandas DataFrame DataFrame.sample() 函数
发布时间:2024/04/22 浏览次数:146 分类:Python
-
Pandas DataFrame sample()函数生成一个 DataFrame 的随机行或列的样本。
Pandas DataFrame DataFrame.reindex() 函数
发布时间:2024/04/22 浏览次数:60 分类:Python
-
Pandas DataFrame reindex()函数可以改变 DataFrame 的行或列的索引。
Pandas DataFrame DataFrame.query() 函数
发布时间:2024/04/22 浏览次数:109 分类:Python
-
DataFrame.query()方法从调用者 DataFrame 中过滤符合特定条件的行。
Pandas DataFrame DataFrame.plot.bar() 函数
发布时间:2024/04/22 浏览次数:165 分类:Python
-
Pandas DataFrame.plot.bar()函数沿着指定的轴绘制一个条形图。