【发布时间】:2017-08-26 23:21:45
【问题描述】:
我有一个数据框 (df),如下所示:
0 1 2 3
0 BBG.apples.S BBG.XNGS.bananas.S 0
1 BBG.apples.S BBG.XNGS.oranges.S 0
2 BBG.apples.S BBG.XNGS.pairs.S 0
3 BBG.apples.S BBG.XNGS.mango.S 0
4 BBG.apples.S BBG.XNYS.mango.S 0
5 BBG.XNGS.bananas.S BBG.XNGS.oranges.S 0
6 BBG.XNGS.bananas.S BBG.XNGS.pairs.S 0
7 BBG.XNGS.bananas.S BBG.XNGS.kiwi.S 0
8 BBG.XNGS.oranges.S BBG.XNGS.pairs.S 0
9 BBG.XNGS.oranges.S BBG.XNGS.kiwi.S 0
10 BBG.XNGS.peaches.S BBG.XNGS.strawberrys.S 0
11 BBG.XNGS.peaches.S BBG.XNGS.strawberrys.S 0
12 BBG.XNGS.peaches.S BBG.XNGS.strawberrys.S 0
13 BBG.XNGS.peaches.S BBG.XNGS.kiwi.S 0
我正在尝试使用以下方法更新数据框中的值(第一行第三列):
for index, row in df.iterrows():
status = row[3]
if int(status) == 0:
df[index]['3'] = 1
但是当我打印出数据框时,它保持不变。
我做错了什么?
【问题讨论】:
-
iterrows()只返回一个生成器,index,row是两个值。您要更新什么值? (df[index]['3']应该代表哪一行哪一列?) -
您确定您的列名是字符串 (
'3') 而不是整数?当您尝试访问该列时,这可能会导致混乱。如果有疑问,请查看您从 print(df.columns) 中得到什么。