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 版本中被取消的警告保持沉默。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串