Pandas之DataFrame(2)

【DataFrame对象既有行索引,又有列索引】
行索引,表明不同行,叫index,0轴,axis=0
列索引,表名不同列,叫columns,axis=1
在这里插入图片描述

选择行与列

df.sort_values(by=“”,ascending=False)by指以哪一列作为分类的依据。
df.sort_values【:100】指前100个使用次数最多的。
若要具体选择某一列,则用df【“列索引”】
若要选择具体某一行,则用df【:100】【“列索引”】

更优质的方法:
1.df.loc 通过标签索引行数据
2.df.iloc通过位置获取行数据

[[[[比如一个数据 t:
W X Y Z
A 0 1 2 3
B 4 5 6 7
C 8 9 10 11 ]]]
t.loc[“A”,“W”]=0(第A行W列)
t.loc[“A”,[“W”,“Z”]]=W 0
Z 3
type(t.loc[“A”,[“W”,“Z”]])=pandas.core.series.Series
t.loc[[“A”,“C”],[“W”,“Z”]]= W Z
A 0 3
C 8 11
t.loc[“A”:,[“W”,“Z”]] =W Z
A 0 3
B 4 7
C 8 11
注意:冒号**:loc里面是闭合**的,即会选择到冒号后面的数据

t.iloc[1:3,[2,3]]= Y Z
B 6 7
C 10 11 (第2到3行,第3、4列的数据)
t.iloc[1:3,1:3]= X Y
B 5 6
C 9 10(冒号:在iloc里不是闭合的)
如何对其更改赋值:
t.loc[“A”,“Y”]=100
OUT: t=(第A行Y列的值被改为100)
t.iloc[1:2,0:2]=200
OUT:t=(第2行的第1-2列的数据被改为200)

Pandas的布尔索引

1.想找到所有的使用次数超过800的狗的名字
在这里插入图片描述
其中,先用df[“”]找到狗的名字的这一列,再用>800找到使用次数大于800的狗名字。最后用df[]显示出使用次数大于800的狗名字,会显示出使用次数和狗的名字的行的标签。

2.找到所有的使用次数超过700并且名字的字符串的长度大于4的狗的名字
第一步:(df[“Row_Labels”].str.len()>4)名字的字符串的长度大于4
第二步:(df[“Count_AnimalName”]>700)*使用次数超过700
第三步:用&将他们连接起来。即:(df[“Row_abels”].str.len()>4)&(df[“Count_AnimalName”]>700)
最后一步:df[第三步]

Pandas字符串用法

在这里插入图片描述

缺失值的处理

通常有两种情况:
1.空,None等,在pandas是NaN(和np.nan一样)
2.我们让其为0,蓝色框中
在这里插入图片描述
1)判断数据是否为NaN:pd.isnull(df)或者pd.notnull(df)
2)处理NaN方式1:删除NaN所在的行列dropna (axis=0, how=‘any’, inplace=False)
处理NaN方式2:填充数据,t.fillna(t.mean()),t.fiallna(t.median())****,t.fillna(0)
3)处理为0的数据:t[t==0]=np.nan
(并不是每次为0的数据需要处理,计算平均值等情况Nan不参与计算而0会参与计算)


版权声明:本文为xyxyzhyy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。