1. 程式人生 > >對dataframe的行和列進行遍歷和修改

對dataframe的行和列進行遍歷和修改

首先先定一個這樣的字典,然後我們用不同的方法對其遍歷和修改

字典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