5

我有一个名为original的 pandas DataFrame ,我想向其中添加一个新列并将生成的 DataFrame 保存在一个名为modified的变量中。我怎么做?

import pandas as pd
import numpy as np
original = pd.DataFrame(np.random.randn(5, 2), columns=['a', 'b'])

此处名称非常相似的问题中给出的解决方案是执行以下操作:

original['c'] = original['b'].abs()

这对我不起作用,因为它修改了原始DataFrame。一个潜在的解决方案是使用连接,但这不允许我命名它,也不允许它填充标量值:

modified = original.join(original['b'].abs(),rsuffix='_abs')

目的是能够在没有临时变量的情况下将列添加到一行中,以达到以下效果:

modified = original.some_op() \
    .a_different_op() \
    .add_a_column() \ # <- the step I can't figure out
    .another_op() \
    .final_op()
4

1 回答 1

4

此处描述的使用pandas.DataFrame.assign方法http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.assign.html

于 2016-02-25T13:56:21.173 回答