對dataframe的行和列進行遍歷和修改
阿新 • • 發佈:2018-12-04
首先先定一個這樣的字典,然後我們用不同的方法對其遍歷和修改
字典df
df=pd.DataFrame({"A":[1,2,3,4],"B":[5,6,7,8],"C":[1,1,1,1]})
A B C
0 1 5 1
1 2 6 1
2 3 7 1
3 4 8 1
i.遍歷列
1.ix函式(df.ix[條件,操作區域])
df.ix[df.A>1,'B']=-1
df
A B C
0 1 5 1
1 2 -1 1
2 3 -1 1
3 4 -1 1
2.iterrows()函式。這個函式一般跟index和row一起使用,應為他會返回兩個值,一個就是index,一個是行
for index,row in df.iterrows():
if row['A']>1:
row['B']=-1
A B C
0 1 5 1
1 2 -1 1
2 3 -1 1
3 4 -1 1
3.where函式,np.where(條件,then,else)
df["then"]=np.where(df.A<3,1,0)
df
A B C then
0 1 5 1 1
1 2 6 1 1
2 3 7 1 0
3 4 8 1 0
4.apply函式你可以對行或列每一個數值進行自己指定函式的操作
def judgeLevel(df):
if df['A'] < 2:
return 'C'
elif df['A'] > 3:
return 'A'
else:
return 'B'
df['level']=df.apply(lambda r:judgeLevel(r),axis=1)
df
A B C level
0 1 5 1 C
1 2 6 1 B
2 3 7 1 B
3 4 8 1 A
ii.遍歷列
iloc函式
for i in range(0, len(df)): print (df.iloc[i]['A'], df.iloc[i]['B']) 1 5 2 6 3 7 4 8