1. 程式人生 > >pandas筆記3:修改Dataframe一列的最大值及loc,iloc用法

pandas筆記3:修改Dataframe一列的最大值及loc,iloc用法

話不多說,先看怎麼修改某一列的最大值。
那首先就要先找到該列的最大值:

import numpy as np
import  pylab as plt
plt.style.use("ggplot")
import pandas as pd
df = pd.DataFrame({"A":[1,2,333,444,5,6],"B":[2,2,56,784,1,90]})
print(df)

df:

     A    B
0    1    2
1    2    2
2  333   56
3  444  784
4    5    1
5    6   90

看一列的最大值

print(df.loc[:,"A"].max())

輸出:444
這裡涉及到了loc的用法,iloc與loc都是dataframe常用的索引方式,個人認為loc可能用的更多一點。loc是基於標籤的索引方式,iloc是基於位置座標的。
例如在上個語句中,loc[:,“A”]。:表示行取得是所有的行,列則為"A"列,那麼這樣索引得到的就是A列所有值,之後再取max就得到了最大值。
若要修改最大值為90:

df.loc[df["A"]==df.loc[:,"A"].max(),"A"]  = 90
print(df)

輸出:

     A    B
0    1    2
1    2
2 2 333 56 3 90 784 4 5 1 5 6 90

這裡是loc函式用的最多的形式。個人理解:loc裡面兩個引數分別是條件(取哪一行)與取哪一列(位置)。

df.loc[df["A"]==df.loc[:,"A"].max(),"A"]

中的前半段

df["A"]==df.loc[:,"A"].max()

即索引的條件,也就把行給限制了,就是隻能取A列值為最大的那一行,但是行找到了,列怎麼確定呢,就是逗號後面的"A"的作用了,在精確定位到該數後,替換為90即可。