Pandas 我可以逐行更新数据帧索引吗?

Pandas 我可以逐行更新数据帧索引吗?,pandas,Pandas,有没有一种方法可以在不使用列名的情况下将修改后的行分配给原始行索引?上面的代码似乎不起作用,但如果它起作用,对我来说是最简单的。因为Python是一种通过对象引用传递的编程语言,所以不需要修改原始行 对于索引,df.iterrows()中的行: 修改_行(行) 在原始代码中,您在对数据帧进行迭代时对其进行了修改,因此可能会导致一些意外行为。看起来您需要: for index, row in df.iterrows(): new_row = modify_row(row) df[

有没有一种方法可以在不使用列名的情况下将修改后的行分配给原始行索引?上面的代码似乎不起作用,但如果它起作用,对我来说是最简单的。

因为Python是一种通过对象引用传递的编程语言,所以不需要修改原始行

对于索引,df.iterrows()中的行:
修改_行(行)
在原始代码中,您在对数据帧进行迭代时对其进行了修改,因此可能会导致一些意外行为。

看起来您需要:

for index, row in df.iterrows():
    new_row = modify_row(row)
    df[index] = new_row

但这只修改行,不修改df。它需要存储回原始行中的df。您可以创建一个示例来测试它。原始DF完全没有改变。@marlon正如我所解释的,Python是一种通过对象引用传递的编程语言,对row的修改将应用于DF中的原始行。它没有改变。你必须测试它@除非您提供
modify\u row
的示例数据和代码,否则马龙人将无法测试它。这实际上是有效的。您可以:
df.loc[index]=new\u row
,但通常不应该迭代更新行,尤其是使用
iterrows
。我的modify有两个参数,一个是“row”,另一个是“x”。如何在modify_row函数中传递两个参数?
df.apply(modify_row,x=some_val,axis=1)
。但是x是值,而不是键。例如,x='30',我的参数是(第30行)。如何将它们传递到修改行?是的,您是否尝试了
df.apply(修改行,x='30',轴=1)
df[:] = df.apply(modify_row, axis=1)