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更有效地做到这一点?
有人提示吗?
如果我理解正确,您希望列"字符串"具有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)