更新变量中的pandas数据帧行

时间:2017-08-07 13:41:34

标签: python pandas

我正在执行以下操作来更新数据帧行:

val = "123"
row = df.loc[id, :]
t = type(row['col1'])
val = t(val)
df.loc[id, 'col1'] = val

如果我排[' col1'] = val,它不会更新原始数据帧。有没有办法在不使用.loc的情况下更新原始数据帧?

1 个答案:

答案 0 :(得分:0)

更新以供以下评论
我认为简短的答案是否定的

  

有没有说“改变你已经取得的行”

这是因为Pandas中的操作会将副本而不是视图返回到原始DataFrame。有一个来自JeffR的StackOverflow帖子写了许多Pandas here

如果您尝试将val分配给DataFrame中的一个单元格,则可以使用set_value功能。该方法的文档是here

val = "123"
row = df.loc[id, :]
t = type(row['col1'])
val = t(val)
df.set_value(id, 'col1', val)

如果您尝试将val特定数据类型分配给列中的所有单元格,可以使用apply方法

def changeType(cell, val):
    # You could pass the id or list of ids as well if you need to perform some logic with it
    t = type(cell)
    cell = t(val)
    return cell

val = "123"
df.loc[:, 'col1'] = df.loc[:, 'col1'].apply(changeType, args=(val,))