Pandas将一行或多行添加到 DataFrame 的末尾
Pandas 是一个强大的 Python 数据分析库,它提供了许多用于操作数据的功能,其中之一就是将数据框(DataFrame)合并或添加。本文将详细介绍如何使用 Pandas 的 append()
方法来合并数据框。append()
方法可以快速地将一行或多行添加到 DataFrame 的末尾。
1. 基础用法
在 Pandas 中,append()
方法允许我们将一个 DataFrame 添加到另一个 DataFrame 的末尾。这是一个非常常用的操作,尤其是在处理来自不同数据源的数据时。
示例代码 1: 创建两个 DataFrame 并使用 append 合并
import pandas as pd
# 创建第一个 DataFrame
df1 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'example.com'],
'访问量': [1000, 1500]
})
# 创建第二个 DataFrame
df2 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'test.com'],
'访问量': [500, 800]
})
# 使用 append 合并两个 DataFrame
result = df1._append(df2, ignore_index=True)
print(result)
Output:
2. 忽略索引
在使用 append()
方法时,可以通过设置 ignore_index=True
来重新分配新的索引给合并后的 DataFrame。这通常在索引值不重要的情况下非常有用。
示例代码 2: 使用 ignore_index 选项
import pandas as pd
df1 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'example.com'],
'访问量': [1000, 1500]
})
df2 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'test.com'],
'访问量': [500, 800]
})
result = df1._append(df2, ignore_index=True)
print(result)
Output:
3. 保留原有索引
如果你希望保留原有的索引,可以不设置 ignore_index
或将其设为 False
。
示例代码 3: 保留原有索引
import pandas as pd
df1 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'example.com'],
'访问量': [1000, 1500]
}, index=[1, 2])
df2 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'test.com'],
'访问量': [500, 800]
}, index=[3, 4])
result = df1._append(df2)
print(result)
Output:
4. 合并具有不同列的 DataFrame
当两个 DataFrame 拥有不同的列时,append()
方法会自动对列进行对齐,不存在的列将被填充为 NaN。
示例代码 4: 合并具有不同列的 DataFrame
import pandas as pd
df1 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'example.com'],
'访问量': [1000, 1500]
})
df2 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'test.com'],
'用户数': [200, 300]
})
result = df1._append(df2, ignore_index=True, sort=False)
print(result)
Output:
5. 使用字典添加单行数据
可以通过将字典传递给 append()
方法来添加单行数据。
示例代码 5: 使用字典添加单行数据
import pandas as pd
df = pd.DataFrame({
'网站': ['pandasdataframe.com', 'example.com'],
'访问量': [1000, 1500]
})
new_row = {'网站': 'pandasdataframe.com', '访问量': 2000}
result = df._append(new_row, ignore_index=True)
print(result)
Output:
6. 追加多行数据
除了追加单个 DataFrame 外,append()
方法还可以一次性追加多个 DataFrame。
示例代码 6: 追加多行数据
import pandas as pd
df1 = pd.DataFrame({
'网站': ['pandasdataframe.com', 'example.com'],
'访问量': [1000, 1500]
})
rows = [
{'网站': 'pandasdataframe.com', '访问量': 2000},
{'网站': 'newsite.com', '访问量': 1700}
]
result = df1._append(rows, ignore_index=True)
print(result)
Output:
7. 性能考虑
虽然 append()
方法非常方便,但在处理大数据集或在循环中多次使用 append()
时,它可能不是性能最优的选择。在这种情况下,建议使用 pandas.concat()
或直接使用列表来收集数据行,然后一次性创建 DataFrame。
示例代码 7: 使用列表代替多次 append 提高性能
import pandas as pd
data = []
for i in range(1000):
data._append({'网站': 'pandasdataframe.com', '访问量': i})
df = pd.DataFrame(data)
print(df)
8. 结论
Pandas 的 append()
方法提供了一种快速而简便的方式来扩展 DataFrame。无论是添加几行数据还是合并两个 DataFrame,append()
都能够简洁地完成任务。然而,在处理大规模数据或需要高性能的场景中,使用 concat()
或其他方法可能更加合适。