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