在pandas DataFrame中添加一行
在Pandas中,DataFrame是二维数据结构,即数据以行和列的形式对齐在表格中。 我们可以使用列表,字典,序列和另一个DataFrame来创建DataFrame。 但是,当我们想要向已创建的DataFrame添加新行时,它是通过内置方法(如append)在DataFrame的末尾添加的。 在本文中,我们将通过涉及DataFrame元素中索引的一些技巧找到向已创建的DataFrame添加新行DataFrame的方法。
更多Pandas文章,请阅读:Pandas教程
示例
让我们首先创建一个新的Pandas DataFrame,如下所示。
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']}
df = pd.DataFrame(data)
print df
输出
运行上述代码会给我们以下结果 –
Age Gender Name
0 28 MTom
1 34 MJack
2 29 FMary
3 42 F Ricky
方法1 - 我们跟随的第一种方法是将新来的行转换为DataFrame,并将其与现有DataFrame连接,同时重置索引值。由于索引重置,新行会添加到顶部。
示例
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']}
df = pd.DataFrame(data)
top_row = pd.DataFrame({'Name':['Lavina'],'Age':[2],'Gender':['F']})
# 与旧的DataFrame连接并重置索引
df = pd.concat([top_row, df]).reset_index(drop = True)
print df
输出
运行上述代码会给我们以下结果 –
Age Gender Name
0 2 F Lavina
1 28 M Tom
2 34 M Jack
3 29 F Mary
4 42 F Ricky
方法2 - 在这种方法中,我们使用 Dataframe.iloc[] 方法,它允许我们在索引位置0处添加新行。 在下面的示例中,我们通过在.loc方法的索引值中提供0(第一行的索引值)作为索引值,将新行添加为列表。
示例
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']}
df = pd.DataFrame(data)
# 在提供的列表中的第0个索引位置添加新行
df.iloc[0] = ['7', 'F','Piyu']
print df
输出
运行上述代码会给我们以下结果 –
Age Gender Name
0 7 F Piyu
1 34 M Jack
2 29 F Mary
3 42 F Ricky