如何使用Python Pandas的模板将新行附加到DataFrame中
在数据分析中,经常需要在DataFrame中添加新的数据行。而Python的Pandas库提供了方便的方法来实现这一功能。
更多Pandas相关文章,请阅读:Pandas 教程
创建DataFrame
我们首先需要创建一个DataFrame,作为需要添加数据的对象。可以通过以下代码创建一个包含三列数据的DataFrame:
import pandas as pd
data = {'name': ['Tom', 'Jack', 'Mary'],
'age': [18, 21, 19],
'score': [90, 85, 87]}
df = pd.DataFrame(data)
print(df)
输出结果:
name age score
0 Tom 18 90
1 Jack 21 85
2 Mary 19 87
使用.loc[]方法添加新行
Pandas库提供了.loc[]方法来访问行和列。通过添加新的索引标签和数据,我们可以将新行添加到DataFrame中。以下是一个示例代码:
new_data = {'name': 'John',
'age': 20,
'score': 92}
df.loc[3] = new_data
print(df)
输出结果:
name age score
0 Tom 18 90
1 Jack 21 85
2 Mary 19 87
3 John 20 92
代码中,我们首先定义了新的数据行,并把它存储在new_data变量中。然后通过.loc[]方法,以索引标签3为新行的位置,指定数据添加到DataFrame中。
另外,我们也可以使用整数索引指定插入位置。以下是一个示例:
new_data = {'name': 'Alice',
'age': 22,
'score': 95}
df.loc[len(df)] = new_data
print(df)
输出结果:
name age score
0 Tom 18 90
1 Jack 21 85
2 Mary 19 87
3 John 20 92
4 Alice 22 95
代码中,我们使用len()方法获取此时DataFrame的行数,以整数索引插入新行。
使用.loc[]方法时,还可以一次添加多行数据,只需在传递参数时用list或DataFrame作为参数。以下是一个示例代码:
new_data = [{'name': 'David', 'age': 23, 'score': 89},
{'name': 'Lily', 'age': 20, 'score': 97}]
df = df.append(new_data, ignore_index=True)
print(df)
输出结果:
name age score
0 Tom 18 90
1 Jack 21 85
2 Mary 19 87
3 John 20 92
4 Alice 22 95
5 David 23 89
6 Lily 20 97
代码中,我们创建了一个包含两行数据的列表,并使用.append()方法将其添加到DataFrame中。通过ignore_index参数为True,我们可以使新的行重新索引,以适应新的数据行的长度。
使用字典添加新行
除了.loc[]方法,我们也可以使用字典来添加新行。这里我们创建一个新的字典,键作为列名称,值作为数据,然后使用.append()方法将其添加到DataFrame中。以下是一个示例代码:
new_data = {'name': 'Leah',
'age': 21,
'score': 96}
df = df.append(new_data, ignore_index=True)
print(df)
输出结果:
name age score
0 Tom 18 90
1 Jack 21 85
2 Mary 19 87
3 John 20 92
4 Alice 22 95
5 David 23 89
6 Lily 20 97
7 Leah 21 96
代码中,我们针对新行创建了一个字典,并使用.append()方法将其添加到DataFrame中。
使用DataFrame.concat方法添加新行
除了上述方法,还可以使用DataFrame.concat()方法将两个DataFrame合并,并在末尾添加新行。以下是一个示例代码:
new_data = {'name': 'Emma',
'age': 19,
'score': 94}
new_df = pd.DataFrame(new_data, index=[0])
df = pd.concat([df, new_df], ignore_index=True)
print(df)
输出结果:
name age score
0 Tom 18 90
1 Jack 21 85
2 Mary 19 87
3 John 20 92
4 Alice 22 95
5 David 23 89
6 Lily 20 97
7 Leah 21 96
8 Emma 19 94
代码中,我们创建了一个新的DataFrame,然后使用.concat()方法将两个DataFrame合并,并添加到原始的DataFrame中。通过ignore_index参数,我们重新索引了DataFrame中的行数。
结论
在这篇文章中,我们介绍了如何使用Python Pandas的模板将新行附加到DataFrame中。使用.loc[]方法、字典、DataFrame.concat()方法都可以实现添加新行的功能。根据实际需求和数据格式,我们可以选择不同的方法来实现DataFrame的操作。