根据特定列替换选定的行值
Replace selected row values based on certain column
我想在 df
中找到 C
包含 X1
的行,并将 A
中的值替换为 C
中的值,然后替换值在 C
中,值在 result1
中(将 C
和 result1
中的值移到最左边)。
df
:
A C result1 result2
0 NaN X1 10/10/10 NaN
1 TEXT: >1 TEXT <1
2 NaN X1 10/11/11 <10
预期输出:
A C result1 result2
0 X1 10/10/10 NaN NaN
1 TEXT: >1 TEXT <1
2 X1 10/11/11 NaN <10
与 mask
和 shift
:
subset = df.loc[:, "A":"result1"]
df.loc[:, "A":"result1"] = subset.mask(df.C.eq("X1"), subset.shift(-1, axis=1))
对于C
等于"X1"
的行,subset
中的位置用移位的subset
.
填充
得到
>>> df
A C result1 result2
0 X1 10/10/10 NaN NaN
1 TEXT: >1 TEXT <1
2 X1 10/11/11 NaN <10
我想在 df
中找到 C
包含 X1
的行,并将 A
中的值替换为 C
中的值,然后替换值在 C
中,值在 result1
中(将 C
和 result1
中的值移到最左边)。
df
:
A C result1 result2
0 NaN X1 10/10/10 NaN
1 TEXT: >1 TEXT <1
2 NaN X1 10/11/11 <10
预期输出:
A C result1 result2
0 X1 10/10/10 NaN NaN
1 TEXT: >1 TEXT <1
2 X1 10/11/11 NaN <10
与 mask
和 shift
:
subset = df.loc[:, "A":"result1"]
df.loc[:, "A":"result1"] = subset.mask(df.C.eq("X1"), subset.shift(-1, axis=1))
对于C
等于"X1"
的行,subset
中的位置用移位的subset
.
得到
>>> df
A C result1 result2
0 X1 10/10/10 NaN NaN
1 TEXT: >1 TEXT <1
2 X1 10/11/11 NaN <10