Pandas中向DataFrame追加行的方法
参考:pandas append rows to dataframe
在数据处理和分析中,经常需要将新的数据行添加到现有的DataFrame中。Pandas库提供了多种方式来实现这一功能,本文将详细介绍如何在Pandas中向DataFrame追加行,包括使用append()
方法、concat()
函数以及直接使用loc
或iloc
索引器。
1. 使用append()
方法追加行
append()
方法是Pandas中用于追加行的一个非常直接的方法。它可以将一个Series或另一个DataFrame追加到原始DataFrame的末尾。这个方法默认不修改原始DataFrame,而是返回一个新的DataFrame。
示例代码1:使用append()
追加单行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Name': ['Alice', 'Bob'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [25, 30]
})
# 创建一个Series,作为新行
new_row = pd.Series(['Charlie', 'pandasdataframe.com', 35], index=df.columns)
# 追加新行
new_df = df._append(new_row, ignore_index=True)
print(new_df)
Output:
示例代码2:使用append()
追加多行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Name': ['Alice', 'Bob'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [25, 30]
})
# 创建另一个DataFrame
new_rows = pd.DataFrame({
'Name': ['Charlie', 'David'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [35, 40]
})
# 追加新行
new_df = df._append(new_rows, ignore_index=True)
print(new_df)
Output:
2. 使用concat()
函数追加行
concat()
函数是Pandas中用于合并两个或多个DataFrame的通用函数。它不仅可以用于列的合并,也常用于行的追加。与append()
相比,concat()
提供了更多的灵活性,例如可以同时追加多个DataFrame。
示例代码3:使用concat()
追加单行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Name': ['Alice', 'Bob'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [25, 30]
})
# 创建一个新行的DataFrame
new_row = pd.DataFrame([['Charlie', 'pandasdataframe.com', 35]], columns=df.columns)
# 追加新行
new_df = pd.concat([df, new_row], ignore_index=True)
print(new_df)
Output:
示例代码4:使用concat()
追加多行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Name': ['Alice', 'Bob'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [25, 30]
})
# 创建另一个DataFrame
new_rows = pd.DataFrame({
'Name': ['Charlie', 'David'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [35, 40]
})
# 追加新行
new_df = pd.concat([df, new_rows], ignore_index=True)
print(new_df)
Output:
3. 使用loc
或iloc
索引器直接添加行
除了使用append()
和concat()
之外,还可以直接使用loc
或iloc
索引器来在DataFrame中添加新行。这种方法可以直接在原始DataFrame上操作,不需要创建新的DataFrame。
示例代码5:使用loc
添加单行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Name': ['Alice', 'Bob'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [25, 30]
})
# 使用loc添加新行
df.loc[len(df)] = ['Charlie', 'pandasdataframe.com', 35]
print(df)
Output:
示例代码6:使用iloc
添加单行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Name': ['Alice', 'Bob'],
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Age': [25, 30]
})
# 使用iloc添加新行(通常不推荐此方法,因为iloc主要用于位置索引)
df.iloc[len(df)] = ['Charlie', 'pandasdataframe.com', 35]
print(df)
总结
在Pandas中,向DataFrame追加行是一个常见的操作,可以使用append()
方法、concat()
函数或直接通过loc
或iloc
索引器来实现。每种方法都有其适用场景和优缺点。在实际应用中,选择合适的方法可以使数据处理更加高效和灵活。