在进行 df['column'] = df['column'] 操作时避免重复写 df['column']。

3

我甚至不知道应该如何表达,但在Python中有没有一种方式可以引用等于号前面的文本而无需再次编写它?

** 编辑 - 我正在Jupyter中使用python3。

我似乎花了一半的时间在编写以下代码:

df['column'] = df['column'].some_changes

有没有一种方法可以告诉Python我正在引用等号前面的部分?
例如,我会编写以下内容,其中<%仅表示对=之前文本(df ['column'] )的引用。
df['column'] = <%.replace(np.nan)

1
你正在使用IPython或Jupyter笔记本吗? - user17242583
1
木星...总是木星,哈哈 - Tantable
1
你也许可以编写一个自定义的单元格魔法或者它们被称为什么...我会看看是否能够撰写一个答案。 - user17242583
1
@user17242583 谢谢,感谢你的帮助!不过不要费太多力气。我真的以为这个已经存在了。 - Tantable
没有,据我所知。 - user17242583
1个回答

1
你正在寻找“原地”方法。 我相信你可以将`inplace=True`作为参数传递给pandas中的大多数方法。
因此,它可能看起来像这样:
df['column'].replace(np.nan, inplace=True)

编辑

您也可以执行以下操作:

df["computed_column"] = df["original_column"].many_operations

这样,您仍然可以在以后访问原始数据。 并一次性完成所有需要的操作,而不是保存每个步骤。

inplace不是默认值的优点之一是,如果您正在执行一批操作,并且其中某个操作失败了,您的数据不会被破坏。


是的,说得好!你是对的,它可以在很多情况下工作,但并不是所有情况都适用 :) - Tantable
我认为这是不可能实现的。数学运算可以像 df['a'] *= 5 这样做。 - Bricam
我添加了一条说明,为什么默认情况下不使用原地修改实际上会有帮助。 - mnzbono

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接