pandas dataframe append

pandas dataframe append

参考:pandas dataframe append

pandas是Python中一个非常强大的数据处理库,它提供了大量的数据处理方法,可以帮助我们方便快捷地处理数据。其中,DataFramepandas中最常用的数据结构,它是一个二维的表格型数据结构,可以存储多种类型的数据,并且具有非常灵活的数据操作功能。appendDataFrame的一个重要方法,它可以用来将一行或多行数据添加到DataFrame的末尾。

1. 基本用法

DataFrame.append方法的基本用法是将一个DataFrameSeries对象添加到另一个DataFrame的末尾。这个方法的基本语法如下:

df.append(other, ignore_index=False, verify_integrity=False, sort=False)

其中,other是要添加的DataFrameSeries对象,ignore_index参数用来指定是否忽略原来的索引,如果设置为True,则会重新生成索引,verify_integrity参数用来指定是否检查新的索引是否有重复,如果设置为True,则当出现重复索引时会抛出异常,sort参数用来指定是否对列名进行排序,如果设置为True,则会按照字母顺序对列名进行排序。

下面是一个简单的例子:

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
                    'B': ['B3', 'B4', 'B5'],
                    'C': ['C3', 'C4', 'C5'],
                    'D': ['D3', 'D4', 'D5']},
                   index=[3, 4, 5])

df = df1._append(df2)
print(df)

Output:

pandas dataframe append

2. 添加Series对象

DataFrame.append方法也可以用来添加Series对象。当添加Series对象时,Series对象的索引会被当作列名,Series对象的值会被当作新的一行。如果DataFrame中没有对应的列,会自动创建新的列。

下面是一个例子:

import pandas as pd

df = pd.DataFrame(columns=['A', 'B', 'C', 'D'])
s = pd.Series(['A0', 'B0', 'C0', 'D0'], index=['A', 'B', 'C', 'D'])
df = df._append(s, ignore_index=True)
print(df)

Output:

pandas dataframe append

3. 忽略索引

在默认情况下,DataFrame.append方法会保留原来的索引。如果我们不希望保留原来的索引,可以设置ignore_index参数为True。当ignore_index参数为True时,会重新生成索引。

下面是一个例子:

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
                    'B': ['B3', 'B4', 'B5'],
                    'C': ['C3', 'C4', 'C5'],
                    'D': ['D3', 'D4', 'D5']},
                   index=[3, 4, 5])

df = df1._append(df2, ignore_index=True)
print(df)

Output:

pandas dataframe append

4. 检查索引

在默认情况下,DataFrame.append方法不会检查新的索引是否有重复。如果我们希望检查新的索引是否有重复,可以设置verify_integrity参数为True。当verify_integrity参数为True时,如果出现重复的索引,会抛出异常。

下面是一个例子:

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
                    'B': ['B3', 'B4', 'B5'],
                    'C': ['C3', 'C4', 'C5'],
                    'D': ['D3', 'D4', 'D5']},
                   index=[2, 3, 4])

try:
    df = df1._append(df2, verify_integrity=True)
    print(df)
except ValueError as e:
    print("ValueError:", e)

Output:

pandas dataframe append

5. 排序列名

在默认情况下,DataFrame.append方法不会对列名进行排序。如果我们希望对列名进行排序,可以设置sort参数为True。当sort参数为True时,会按照字母顺序对列名进行排序。

下面是一个例子:

import pandas as pd

df1 = pd.DataFrame({'B': ['B0', 'B1', 'B2'],
                    'A': ['A0', 'A1', 'A2'],
                    'D': ['D0', 'D1', 'D2'],
                    'C': ['C0', 'C1', 'C2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'B': ['B3', 'B4', 'B5'],
                    'A': ['A3', 'A4', 'A5'],
                    'D': ['D3', 'D4', 'D5'],
                    'C': ['C3', 'C4', 'C5']},
                   index=[3, 4, 5])

df = df1._append(df2, sort=True)
print(df)

Output:

pandas dataframe append

6. 添加多个DataFrame

DataFrame.append方法也可以一次添加多个DataFrame。我们可以将多个DataFrame放在一个列表中,然后一次性添加。

下面是一个例子:

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
                    'B': ['B3', 'B4', 'B5'],
                    'C': ['C3', 'C4', 'C5'],
                    'D': ['D3', 'D4', 'D5']},
                   index=[3, 4, 5])

df3 = pd.DataFrame({'A': ['A6', 'A7', 'A8'],
                    'B': ['B6', 'B7', 'B8'],
                    'C': ['C6', 'C7', 'C8'],
                    'D': ['D6', 'D7', 'D8']},
                   index=[6, 7, 8])

df = df1._append([df2, df3])
print(df)

Output:

pandas dataframe append

7. 使用concat函数

虽然append方法非常方便,但是当我们需要添加多个DataFrame时,使用pd.concat函数可能会更加高效。pd.concat可以接受一个DataFrame列表,并且可以在一个操作中完成多个DataFrame的合并。

下面是一个使用pd.concat的例子:

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
                    'B': ['B3', 'B4', 'B5'],
                    'C': ['C3', 'C4', 'C5'],
                    'D': ['D3', 'D4', 'D5']},
                   index=[3, 4, 5])

df3 = pd.DataFrame({'A': ['A6', 'A7', 'A8'],
                    'B': ['B6', 'B7', 'B8'],
                    'C': ['C6', 'C7', 'C8'],
                    'D': ['D6', 'D7', 'D8']},
                   index=[6, 7, 8])

df = pd.concat([df1, df2, df3])
print(df)

Output:

pandas dataframe append

8. 处理不同的列名

当我们使用appendconcat方法合并DataFrame时,如果两个DataFrame的列名不完全相同,那么结果DataFrame会包含所有的列,对于没有的数据会填充NaN

下面是一个例子:

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'B': ['B3', 'B4'],
                    'C': ['C3', 'C4']},
                   index=[3, 4])

df = df1._append(df2)
print(df)

Output:

pandas dataframe append

9. 使用ignore_index和sort同时

我们可以同时使用ignore_indexsort参数来重新生成索引并排序列名。

下面是一个例子:

import pandas as pd

df1 = pd.DataFrame({'B': ['B0', 'B1', 'B2'],
                    'A': ['A0', 'A1', 'A2']},
                   index=[0, 1, 2])

df2 = pd.DataFrame({'D': ['D3', 'D4'],
                    'C': ['C3', 'C4']},
                   index=[3, 4])

df = df1._append(df2, ignore_index=True, sort=True)
print(df)

Output:

pandas dataframe append

10. 添加空DataFrame

有时候我们可能需要向一个空的DataFrame中添加数据。append方法可以处理这种情况。

下面是一个例子:

import pandas as pd

df = pd.DataFrame()
data = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                     'B': ['B0', 'B1', 'B2'],
                     'C': ['C0', 'C1', 'C2'],
                     'D': ['D0', 'D1', 'D2']},
                    index=[0, 1, 2])

df = df._append(data)
print(df)

Output:

pandas dataframe append

以上是关于pandas DataFrameappend方法的详细介绍和示例。通过这些示例,我们可以看到append方法在数据处理中的灵活性和强大功能。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程