python pandas数据追加

python pandas数据追加

0 背景

python pandas数据追加

在处理大量数据时,直接从数据库或后台系统一次性导出数据可能非常耗时,并且容易因为数据量过大导致超时或失败。为了解决这个问题,通常来说,一种有效的策略是分批次导出数据。

这种方法不仅能减少每次操作的数据量,从而降低超时风险,而且能提高处理效率。一旦分批数据被导出,在Python中, 我们可以使用 Pandas 库中的 df._append() 方法来合并这些数据。这个方法允许我们将一个或多个 DataFrame 附加到现有 DataFrame 的末尾,从而创建一个新的 DataFrame。

由于其简单性和实用性,df._append() 是数据合并中最常用和最简单的方法之一。

注意: 在pandas库的新版本中没有了.append()方法,可以使用 ._append() 方法进行数据的追加。

1 使用

导入数据

import pandas as pd
import numpy as np
data = {
    'A': [123],
    'B': ['aa''ab''bc'],
}
df = pd.DataFrame(data)
   A   B
0  1  aa
1  2  ab
2  3  bc

参数说明

我们使用df._append()进行数据追加。以下是这个函数的一些主要参数:

  1. other:这是要附加的 DataFrame 或 Series。这是一个必需参数。
  2. ignore_index:布尔类型(默认为 False)。如果为 True,则不使用索引标签,而是创建一个新的范围索引。这在合并没有意义或相关索引标签不重要的数据时很有用。
  3. sort:布尔类型(默认为 None,即不排序)。如果设置为 True,则在合并时按照列名进行排序。如果 DataFrame 列的顺序不同,这可能是有用的。
  4. 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': [46],
    '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': [46],
    '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': [24],
    'B': ['ab''cd']
}, index=[25])
df._append(df4, verify_integrity=True)
ValueError: Indexes have overlapping values: Index([2], dtype='int64')
df4 = pd.DataFrame({
    'A': [24],
    'B': ['ab''cd']
}, index=[45])
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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!