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
如果列的列是 self 和 other 没有对齐。
在 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