如何在迭代时修改熊猫DataFrame的特定单元格?

时间:2019-03-15 16:29:07

标签: python pandas dataframe

                   Name  Age  Quantity  Fee  ... wood  wood flooring yellow zoo
0                 Puppy    2         1  150  ...    0              0      0   0
1                London   24         1    0  ...    0              0      0   0
2              Snowball   20         1  150  ...    0              0      0   0
3                Malibu    5         1  100  ...    0              0      0   0

我希望名称Snowballyellow更新为值2(以此类推)。我需要遍历所有这些,进行一些处理并更新特定的列。最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

您可以使用

df.loc[df['Name']=='Snowball','yellow'] = 2

loc的第一个参数是行索引器,第二个参数用于选择列

答案 1 :(得分:2)

要为特定单元格编制索引并更改其值,请使用df.loc:

df.loc[df.Name == 'Snowball', 'yellow'] = 2

要有效地遍历数据帧的所有行,请使用df.iterrows:

values_to_insert_into_yellow_by_name = {'Puppy': 1, 'London': 2, 'Snowball': 2, 'Malibu': 3}
for idx, row in df.iterrows():
    name = df.loc[idx, 'Name']
    insert = values_to_insert_into_yellow_by_name[name]
    df.loc[idx, 'yellow'] = insert

您可以使用字典来存储需要插入的值。