Python:更改数据帧中的值

Python:更改数据帧中的值,python,pandas,dataframe,Python,Pandas,Dataframe,我是python和pandas的新手,我需要一些想法。假设我有以下数据帧: 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

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

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

如果在处理数据帧时使用循环,则几乎总是不正确

为此,您可以使用分配:

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

如果在处理数据帧时使用循环,则几乎总是不正确

为此,您可以使用分配:

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
你可以这样做

df.iloc[:,1] = 3 #columns 2 
df.iloc[:,2] = 3 
df.iloc[:,3] = 3 
你可以这样做

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

只需给列
df[2]=3
df[3]=3
df[4]=3
df[[2,3,4]]=3
,就可以了。实际上没有理由循环。您可以调用每个列并指定值。除了为列指定一个值之外,您还需要什么吗?只需为列
df[2]=3
df[3]=3
df[4]=3
df[[2,3,4]=3
,实际上没有理由循环。您可以调用每个列并指定值。除了给列指定一个值之外,您还需要什么吗?是的,这是正确的。但是,如果我想将其应用于2000行数据,其中每行的赋值是不同的,该怎么办呢。它现在变得更复杂,因此循环。我创建了这个简化的示例,但我假设原理是相同的。@embedded.95那么这是一个完全不同的问题,以前已经被问过很多次了。使用索引或
np.where
。是的,这是正确的。但是,如果我想将其应用于2000行数据,其中每行的赋值是不同的,该怎么办呢。它现在变得更复杂,因此循环。我创建了这个简化的示例,但我假设原理是相同的。@embedded.95那么这是一个完全不同的问题,以前已经被问过很多次了。使用索引或
np.where