假设我有一个数据框。我想修改具有特定值的行列表。
例如,下面是我的数据框。
df = pd.DataFrame({
"strings":["A", "B", "C", "D", "E"],
"value":["a", "b", "c", "d", "f"],
"price":["1", "2", "3", "4", "5"]})
我想将 C、D 和 E 行中的所有单元格替换为“0”,如下所示。行数 = ['C', 'D', 'E']
df = pd.DataFrame({
"strings":["A", "B", "C", "D", "E"],
"value":["a", "b", "0", "0", "0"],
"price":["1", "2", "0", "0", "0"]})
我知道我们可以通过简单地给出行的名称和特定值来实现这一点,但是由于我们有很多行要修改,我们如何使用 pandas 更有效地做到这一点?
有人提示吗?
请您参考如下方法:
如果我没理解错的话,对于“strings”列的值为 C、D 或 E 的行,您希望将“price”和“value”列中的所有值设置为零。
df.loc[df.strings.isin(["C", "D", "E"]), df.columns.difference(["strings"])] = 0
df
Out[82]:
price strings value
0 1 A a
1 2 B b
2 0 C 0
3 0 D 0
4 0 E 0
