【发布时间】:2019-05-16 04:18:36
【问题描述】:
我有一个如下所示的数据框
import pandas as pd
df = pd.DataFrame(data={"ID":[11,12,13,14,25],\
"Name":["Alice","Bob","Charlie", "Dan", "Erin"], "X":[1,0,0,0,0]})
ID Name X
0 11 Alice 1
1 12 Bob 0
2 13 Charlie 0
3 14 Dan 0
4 25 Erin 0
我想选择X为0的第一行,并将值改为1。我试过了
df[df["X"]==0]["X"].iloc[0] = 1
但这似乎根本没有修改数据框df。这对我来说很奇怪,因为我没有收到任何错误消息,并且删除 =1 会产生
>>> df[df["X"]==0]["X"].iloc[0]
0
正如预期的那样。
我怀疑条件会创建数据帧的副本,因此数据帧 df 根本不会被修改。
实现这一目标的最佳方法是什么
ID Name X
0 11 Alice 1
1 12 Bob 1
2 13 Charlie 0
3 14 Dan 0
4 25 Erin 0
当然,这需要系统地完成,因为我需要迭代这个过程。
非常感谢您的帮助。
【问题讨论】:
标签: python pandas indexing series