On this page
pandas.DataFrame.append
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)
[source]-
Append rows of
other
to the end of caller, returning a new object.Columns in
other
that are not in the caller are added as new columns.Parameters: -
other : DataFrame or Series/dict-like object, or list of these
-
The data to append.
-
ignore_index : boolean, default False
-
If True, do not use the index labels.
-
verify_integrity : boolean, default False
-
If True, raise ValueError on creating index with duplicates.
-
sort : boolean, default None
-
Sort columns if the columns of
self
andother
are not aligned. The default sorting is deprecated and will change to not-sorting in a future version of pandas. Explicitly passsort=True
to silence the warning and sort. Explicitly passsort=False
to silence the warning and not sort.New in version 0.23.0.
Returns: -
appended : DataFrame
See also
pandas.concat
- General function to concatenate DataFrame, Series or Panel objects.
Notes
If a list of dict/series is passed and the keys are all contained in the DataFrame’s index, the order of the columns in the resulting DataFrame will be unchanged.
Iteratively appending rows to a DataFrame can be more computationally intensive than a single concatenate. A better solution is to append those rows to a list and then concatenate the list with the original DataFrame all at once.
Examples
>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB')) >>> df A B 0 1 2 1 3 4 >>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB')) >>> df.append(df2) A B 0 1 2 1 3 4 0 5 6 1 7 8
With
ignore_index
set to True:>>> df.append(df2, ignore_index=True) A B 0 1 2 1 3 4 2 5 6 3 7 8
The following, while not recommended methods for generating DataFrames, show two ways to generate a DataFrame from multiple data sources.
Less efficient:
>>> 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
More efficient:
>>> 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
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.24.2/reference/api/pandas.DataFrame.append.html