修改数据框中的多个行

Sak*_*ura 1 python python-2.7 pandas

假设我有一个数据帧.我想修改具有特定值的行列表.

例如,下面是我的数据帧.

df = pd.DataFrame({
"strings":["A", "B", "C", "D", "E"], 
  "value":["a", "b", "c", "d", "f"], 
  "price":["1", "2", "3", "4", "5"]})
Run Code Online (Sandbox Code Playgroud)

我想在行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"]})
Run Code Online (Sandbox Code Playgroud)

我知道我们可以通过简单地给出行的名称和特定值来实现这一点,但是由于我们要修改很多行,我们如何使用pandas更有效地做到这一点?

有人提示吗?

ayh*_*han 5

如果我理解正确,您希望列"字符串"具有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
Run Code Online (Sandbox Code Playgroud)