在我们拿到一份数据的时候我们需要快速的预览这份数据,对数据的全貌有一个了解,Pandas是一个非常好的工具。
nunique()
可以返回所有列中唯一值的个数store.nunique().sort_values(ascending=False)/store.shape[0]*100
查看整个数据表中每列中的唯一值占比- 使用使用
df.head()
查看数据与的前五行和列名 pd.set_option('display.max_rows',10)
设置每次查看数据最大行数为10行使用
df.shape
查看数据的列和行总数clolumns,shape,index这些都是属性不是方法,后面是不跟()的
np.sort(df['product_color'].dropna().unique())
可以快速看到某列数据中的非空唯一值df.info()
可以快速查看整个数据中每列的数据类型,列名,有多少数据、null值有多少df.describe()
可以快熟查看整个数据中每列的平均值、中位数、众数等统计量pandas中的croostab方法可以很快帮助我们对两列文本型的数据(分类型变量比如性别),将这两列的聚合成一个矩阵(DataFrame)并计数
pd.crosstab(df.Nationality, df.Handedness)
pd.crosstab(df.Sex, df.Handedness, normalize='index') #求百分比
pd.crosstab(df.Sex, df.Handedness, margins = True) #加入合计类似于excel里面的透视表
pd.crosstab(df.Sex, [df.Handedness, df.Nationality], margins = True) #复合
data[data[``' Income '``].isin([data[``' Income '``].``max``()])]
查找income这列中最大值所在的行df.drop(df[df[``' Income '``]==df[``' Income '``].``max``()].index,inplace=``True``)
删除income这列中最大值所在的行(可以理解为删掉了收入最高的样本)pd.options.display.max_columns = df.shape[1]
设定使用head()预览数据的最大行数量for i in data.columns:
print("{}: {} unique values".format(i,len(data[i].unique())))
可以快速查看所有列中的唯一值数量,帮助我们分辨那些事分类型变量,那些连续型变量
有时候我们想知道每个特征的最大值是哪些样本
num_li = []
school_li = []
for i in df.columns:
if df[i].dtype == 'float64':
num_li.append(i)
else:
pass
for x in num_li:
tmp = df.sort_values(by=x, ascending=False).iloc[0]['学校名称']
school_li.append(tmp)
f = pd.DataFrame(school_li,index=num_li, columns=['highest school'])
f
下面的代码和上面等价
df.set_index("学校名称",inplace= True)
df.iloc[:,3:].idxmax()
df.nlargest(10, '高端人才得分')
能够返回某列特征的最大10个值