对切​​片中的多个列进行操作

时间:2019-12-03 21:14:50

标签: python pandas

我想在DataFrame的一个切片中的多个列上进行操作,而不必创建新的df。

例如,我想将一列的值与其相邻列的值相加,但只能在特定条件下进行。下面的代码有效,但不是很干净或可读。在Pandas中有更好的方法吗?

Note:我知道可能有一种更好的方法来处理这种特定条件(第二列不为空)而不切分数据帧,我通常在寻找一种在多列上进行操作的pythonic方法切成薄片。

df.loc[~df["col2"].isnull(), "col1"] = (
    df.loc[~df["col2"].isnull(), "col1"]
    + "buffer"
    + df.loc[~df["col2"].isnull(), "col2"]
)

1 个答案:

答案 0 :(得分:-1)

您可以使用:

df["col1"] = df.loc[~df["col2"].isnull()].sum(axis=1)