Pandas中向DataFrame追加行的方法
参考:pandas append rows to dataframe
在数据处理和分析中,经常需要向现有的数据集中添加更多的数据。Pandas库提供了多种方式来向DataFrame中追加行。本文将详细介绍如何使用Pandas在Python中向DataFrame追加行的不同方法,并通过具体的示例代码来展示每种方法的应用。
1. 使用append()
方法
append()
方法是Pandas中用来向DataFrame添加新行的一种直观方式。这个方法不会在原地修改DataFrame,而是返回一个新的DataFrame。
示例代码1:使用append()
添加单行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 创建一个要追加的新行
new_row = pd.Series(['pandasdataframe.com', 1500], index=['Website', 'Visits'])
# 追加行
result = df._append(new_row, ignore_index=True)
print(result)
Output:
示例代码2:使用append()
添加多行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 创建一个要追加的新DataFrame
new_rows = pd.DataFrame({
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Visits': [1500, 2000]
})
# 追加行
result = df._append(new_rows, ignore_index=True)
print(result)
Output:
2. 使用concat()
函数
concat()
函数是Pandas中用于合并两个或多个pandas对象的功能。它不仅可以用于列的合并,也常用于行的追加。
示例代码3:使用concat()
追加单行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 创建一个要追加的新行
new_row = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1500]
})
# 追加行
result = pd.concat([df, new_row], ignore_index=True)
print(result)
Output:
示例代码4:使用concat()
追加多行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 创建一个要追加的新DataFrame
new_rows = pd.DataFrame({
'Website': ['pandasdataframe.com', 'pandasdataframe.com'],
'Visits': [1500, 2000]
})
# 追加行
result = pd.concat([df, new_rows], ignore_index=True)
print(result)
Output:
3. 使用loc[]
或iloc[]
索引器
Pandas的loc[]
和iloc[]
索引器不仅可以用于数据的访问,也可以用于数据的修改和追加。
示例代码5:使用loc[]
追加单行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 使用loc追加行
df.loc[len(df)] = ['pandasdataframe.com', 1500]
print(df)
Output:
示例代码6:使用iloc[]
在特定位置插入行
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 使用iloc追加行
df.iloc[0] = ['pandasdataframe.com', 1500]
print(df)
Output:
4. 使用at[]
或iat[]
索引器
at[]
和iat[]
索引器在Pandas中用于访问单个元素,但它们也可以用于修改DataFrame的特定位置,从而实现行的追加。
示例代码7:使用at[]
修改特定位置
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 使用at修改元素
df.at[1, 'Website'] = 'pandasdataframe.com'
df.at[1, 'Visits'] = 1500
print(df)
Output:
示例代码8:使用iat[]
修改特定位置
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 使用iat修改元素
df.iat[1, 0] = 'pandasdataframe.com'
df.iat[1, 1] = 1500
print(df)
5. 使用DataFrame.insert()
方法
DataFrame.insert()
方法可以在DataFrame的指定位置插入一列,但通过适当的处理,也可以用来追加行。
示例代码9:使用insert()
插入新列后转置
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({
'Website': ['pandasdataframe.com'],
'Visits': [1000]
})
# 插入新列
df.insert(2, 'New Column', [1500])
# 转置DataFrame
df = df.T
print(df)
Output:
以上是Pandas中向DataFrame追加行的几种常用方法。每种方法都有其适用场景和优缺点,选择合适的方法可以有效地处理数据追加的需求。