Pandas:如何更新行中的值


您可以在使用iterrows时使用以下基本语法来更新 pandas DataFrame 中的值:

 for i, row in df. iterrows ():
    points_add = 10
    if row[' points '] > 15:
        points_add = 50
    df. at [i,' points '] = points_add

此特定示例迭代 DataFrame 的每一行,如果当前值大于 15,则将点列中的值更新为50

如果当前值小于或等于 15 ,则该值更新为10

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

示例:按行更新 Pandas DataFrame 中的值

假设我们有以下 pandas DataFrame,显示不同篮球运动员的得分:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
                   ' points ': [10, 12, 14, 15, 15, 15, 16, 17, 20]})

#view DataFrame
print (df)

  player points
0 to 10
1 B 12
2 C 14
3 D 15
4 E 15
5 F 15
6 G 16
7:17 a.m.
8 I 20

假设我们要使用以下逻辑更新点列中的值:

  • 如果点数小于或等于 15,则将值更新为10
  • 如果点数大于 15,则将值更新为50

我们可以使用iterrows函数迭代 DataFrame 的每一行并进行以下更新:

 #iterate over each row in DataFrame and update values in points column
for i, row in df. iterrows ():
    points_add = 10
    if row[' points '] > 15:
        points_add = 50
    df. at [i,' points '] = points_add

#view updated DataFrame
print (df)

  player points
0 to 10
1 B 10
2 C 10
3 D 10
4 E 10
5 F 10
6 G 50
7:50 a.m.
8 I 50

我们可以看到points栏中的值已经相应更新。

注意:您可以在此处找到 pandas iterrows()函数的完整文档。

其他资源

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

Pandas:如何导航列
Pandas:如何选择两个值之间的行
Pandas:根据另一个DataFrame更新列值

添加评论

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