Pandas:如何在特定索引位置插入行


您可以使用以下基本语法将行插入到 pandas DataFrame 中的特定索引位置:

 #insert row in between index position 2 and 3
df. loc [ 2.5 ] = value1, value2, value3, value4

#sort index
df = df. sort_index (). reset_index (drop= True )

以下示例展示了如何在实践中使用此语法。

示例:在 Pandas 中的特定索引位置插入一行

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

我们可以使用以下语法在索引位置 2 和 3 之间插入一行:

 #insert row in between index position 2 and 3
df. loc [ 2.5 ] = 'Z', 10, 5, 7

#sort index
df = df. sort_index (). reset_index (drop= True )

#view updated DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 Z 10 5 7
4 D 14 9 6
5 E 14 12 6
6 F 11 9 5
7 G 20 9 9
8:28 a.m. 4:12

请注意,在之前的索引位置 2 和 3 之间插入了一行,其中包含以下信息:

  • 团队:Z
  • 积分:10
  • 助攻:5
  • 篮板数:7

使用sort_index()reset_index()函数,我们可以将值重新分配给索引,范围从 0 到 8。

请注意,新行包含的值数量必须与现有列的数量相同。

例如,如果我们尝试插入仅包含三个值的新行,我们将收到错误:

 #attempt to insert row with only three values
df. loc [ 2.5 ] = 10, 5, 7

ValueError : cannot set a row with mismatched columns

我们收到一个ValueError ,因为新行中的值的数量与 DataFrame 中现有列的数量不匹配。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何将列插入 Pandas DataFrame
如何向 Pandas DataFrame 添加行
如何根据条件删除 Pandas DataFrame 中的行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注