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 中的行