Python:更改DataFrame中的值

时间:2018-11-19 11:35:54

标签: python pandas dataframe

我是python和pandas的新手,我需要一些想法。假设我有以下DataFrame:

0 1 2 3 4 5
1 5 5 5 5 5
2 5 5 5 5 5
3 5 5 5 5 5
4 5 5 5 5 5

我想遍历每一行并更改特定列的值。假设我想将列(2,3,4)中的所有值都更改为3。

这是我尝试过的方法,我走的路正确吗?

for row in df.iterrows():
        for col in range(2, 4):
            df.set_value('row', 'col', 3)

编辑: 感谢您的答复。简单的解决方案是显而易见的,但是如果我想将值更改为此...,例如:

0  1  2  3  4  5
1  1  2  3  4  5
2  6  7  8  9  10
3  11 12 13 14 15
4  16 17 18 19 20

2 个答案:

答案 0 :(得分:2)

如果在处理数据框时使用循环,则几乎总是走错了轨道。

为此,您可以使用vectorized分配:

df[[2, 3, 4]] = 3

示例:

df = pd.DataFrame({1: [1, 2], 2:  [1, 2]})
print(df)
#     1  2
#  0  1  1
#  1  2  2

df[[1, 2]] = 3

print(df)
#     1  2
#  0  3  3
#  1  3  3

答案 1 :(得分:2)

你可以做到

df.iloc[:,1] = 3 #columns 2 
df.iloc[:,2] = 3 
df.iloc[:,3] = 3