我想在DataFrame的一个切片中的多个列上进行操作,而不必创建新的df。
例如,我想将一列的值与其相邻列的值相加,但只能在特定条件下进行。下面的代码有效,但不是很干净或可读。在Pandas中有更好的方法吗?
Note
:我知道可能有一种更好的方法来处理这种特定条件(第二列不为空)而不切分数据帧,我通常在寻找一种在多列上进行操作的pythonic方法切成薄片。
df.loc[~df["col2"].isnull(), "col1"] = (
df.loc[~df["col2"].isnull(), "col1"]
+ "buffer"
+ df.loc[~df["col2"].isnull(), "col2"]
)
答案 0 :(得分:-1)
您可以使用:
df["col1"] = df.loc[~df["col2"].isnull()].sum(axis=1)