pandas.DataFrame.append#

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)[源代码]#

将行追加到 other 到调用者的末尾,返回一个新对象。

1.4.0 版后已移除: 使用 concat() 取而代之的是。有关更多详细信息,请参见 不推荐使用DataFrame.append和Series.append

中的柱 other 不在调用方中的列作为新列添加。

参数
otherDataFrame或类似序列/DICT的对象,或这些对象的列表

要追加的数据。

ignore_index布尔值,默认为False

如果为True,则生成的轴将标记为0,1,…,n-1。

verify_integrity布尔值,默认为False

如果为True,则在创建具有重复项的索引时引发ValueError。

sort布尔值,默认为False

如果列的列是 selfother 没有对齐。

在 1.0.0 版更改: 默认情况下更改为不排序。

退货
DataFrame

一个新的DataFrame,由调用方和 other

参见

concat

连接DataFrame或Series对象的常规函数。

注意事项

如果传递了dict/Series列表,并且所有键都包含在DataFrame的索引中,则结果DataFrame中列的顺序将保持不变。

迭代地将行追加到DataFrame可能比单个连接更耗费计算。更好的解决方案是将这些行追加到列表中,然后一次将该列表与原始DataFrame连接在一起。

示例

>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'), index=['x', 'y'])
>>> df
   A  B
x  1  2
y  3  4
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'), index=['x', 'y'])
>>> df.append(df2)
   A  B
x  1  2
y  3  4
x  5  6
y  7  8

使用 ignore_index 设置为True:

>>> df.append(df2, ignore_index=True)
   A  B
0  1  2
1  3  4
2  5  6
3  7  8

下面不推荐使用以下方法生成DataFrame,但它们展示了从多个数据源生成DataFrame的两种方法。

效率较低:

>>> df = pd.DataFrame(columns=['A'])
>>> for i in range(5):
...     df = df.append({'A': i}, ignore_index=True)
>>> df
   A
0  0
1  1
2  2
3  3
4  4

更高效:

>>> pd.concat([pd.DataFrame([i], columns=['A']) for i in range(5)],
...           ignore_index=True)
   A
0  0
1  1
2  2
3  3
4  4