python pandas数据追加
0 背景
在处理大量数据时,直接从数据库或后台系统一次性导出数据可能非常耗时,并且容易因为数据量过大导致超时或失败。为了解决这个问题,通常来说,一种有效的策略是分批次导出数据。
这种方法不仅能减少每次操作的数据量,从而降低超时风险,而且能提高处理效率。一旦分批数据被导出,在Python中, 我们可以使用 Pandas 库中的 df._append()
方法来合并这些数据。这个方法允许我们将一个或多个 DataFrame 附加到现有 DataFrame 的末尾,从而创建一个新的 DataFrame。
由于其简单性和实用性,df._append()
是数据合并中最常用和最简单的方法之一。
注意: 在pandas
库的新版本中没有了.append()
方法,可以使用 ._append()
方法进行数据的追加。
1 使用
导入数据
import pandas as pd
import numpy as np
data = {
'A': [1, 2, 3],
'B': ['aa', 'ab', 'bc'],
}
df = pd.DataFrame(data)
A B
0 1 aa
1 2 ab
2 3 bc
参数说明
我们使用df._append()
进行数据追加。以下是这个函数的一些主要参数:
-
other:这是要附加的 DataFrame 或 Series。这是一个必需参数。 -
ignore_index:布尔类型(默认为 False)。如果为 True,则不使用索引标签,而是创建一个新的范围索引。这在合并没有意义或相关索引标签不重要的数据时很有用。 -
sort:布尔类型(默认为 None,即不排序)。如果设置为 True,则在合并时按照列名进行排序。如果 DataFrame 列的顺序不同,这可能是有用的。 -
verify_integrity:布尔类型(默认为 False)。如果为 True,则会检查新生成的 DataFrame 是否包含重复的索引。如果发现重复,会引发异常。
单行数据的追加
将一行数据添加到行的末尾
# 将一行数据添加到行的末尾
data_ = [2, 'cd']
row = pd.Series(data_, index=df.columns)
df._append(row, ignore_index=True)
A B
0 1 aa
1 2 ab
2 3 bc
3 2 cd
# 将一行数据添加到行的末尾
data_ = [2, 'cd']
df.loc[len(df)] = data_
df
A B
0 1 aa
1 2 ab
2 3 bc
3 2 cd
# 追加字典
df._append({'A': 4, 'B': 'cc'}, ignore_index=True)
A B
0 1 aa
1 2 ab
2 3 bc
3 4 cc
添加单列数据
# 将一维列表添加到列的末尾
data_ = ['Z', 'X', 'Y']
df['C'] = data_
df
A B C
0 1 aa Z
1 2 ab X
2 3 bc Y
多行数据的追加
相同结构的多行数据追加
# 添加多行数据
df2 = pd.DataFrame({
'A': [4, 6],
'B': ['cd', 'cc']
})
df._append(df2, ignore_index=True)
A B
0 1 aa
1 2 ab
2 3 bc
3 4 cd
4 6 cc
不同结构的数据追加
df3 = pd.DataFrame({
'A': [4, 6],
'C': ['cd', 'cc']
})
df._append(df3, ignore_index=True)
A B C
0 1 aa NaN
1 2 ab NaN
2 3 bc NaN
3 4 NaN cd
4 6 NaN cc
追加多个数据
df._append([df2, df2, df2])
A B
0 1 aa
1 2 ab
2 3 bc
0 4 cd
1 6 cc
0 4 cd
1 6 cc
0 4 cd
1 6 cc
追加检测重复内容(检测索引是否有重复)
df1._append([df2, df2], verify_integrity=True)
ValueError: Indexes have overlapping values: Index([0, 1], dtype='int64')
比如:
df4 = pd.DataFrame({
'A': [2, 4],
'B': ['ab', 'cd']
}, index=[2, 5])
df._append(df4, verify_integrity=True)
ValueError: Indexes have overlapping values: Index([2], dtype='int64')
df4 = pd.DataFrame({
'A': [2, 4],
'B': ['ab', 'cd']
}, index=[4, 5])
df._append(df4, verify_integrity=True)
A B
0 1 aa
1 2 ab
2 3 bc
4 2 ab
5 4 cd
2 关于
df._append()
方法可以轻松实现数据的追加。如果列名相同,则会追加一行到数据后面;如果列名不同,那么会将新的列添加到原数据里面。数据的追加是Pandas
数据合并操作中最基础、最简单的功能,我们需要做为基础了解一下。
欢迎关注我的微信公众号
原文始发于微信公众号(其之):python pandas数据追加
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204759.html