1.把数据放在dataframe
df = pd.read_csv('路径')
2.查阅dataframe的信息:
http://df.info()
3.查看df的前5
df.head(5)
4.查看哪里有空值
df.isna().any()
5.输出某列中去重后的值
print (df['Product_Category'].unique())切忌,unique()是函数,前面需要加.
6.数据清洗:替换原来的控制
df.fillna(value=0,inplace=True)Ture = 直接修改原对象
False = 新建副本保存(默认)
关于fillna()函数的解释:https://blog.csdn.net/weixin_39549734/article/details/81221276
7.删除不需要的列:
df. drop(columns=["User_ID","Product_ID"],inplace=True)
(因为"User_ID","Product_ID"是列,如果单独dataframe的话,他们就是一个一维结构的数据集,Series;相对应二维数据的数据集是Dataframe)
8.数据可视化:seaborn和matplotlib
https://www.jianshu.com/p/4b925654f506Matplotlib 要求原始数据的输入类型为 Numpy 数组
Seaborn 要求原始数据的输入类型为 pandas 的 Dataframe 或 Numpy 数组
import seaborn as sns
sns.countplot(df['Gender'])
也可以写成: sns.countplot(df.Gender)
9.seaborn中的countplot的hue参数,可以通过控制hue参数,来更细分数据
关于countplot的用法:
sns.countplot(df['Age'],hue=df['Gender'])
10.理解pandas中的apply()函数和 python的lambda函数 和 %s %的用法
简单来说,对于apply():这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据。
结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数
会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。
对于lambda:其中的 x 是作为一个像for遍历里面的 i 值add = lambda x, y : x+yadd(1,2) # 结果为3
需求:将列表中的元素按照绝对值大小进行升序排列list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))
对于%s % : 它是作为一个可输入或可变化的变量name= input("Please input your name: ")
print("Hello, %s good morning!" %name)
Please input your name: Xiaolizi #输入名字Xiaolizi
Hello, Xiaolizi good morning! #print 命令
11.画饼图
x (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化
labels (每一块)饼图外侧显示的说明文字
explode (每一块)离开中心距离
startangle 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起
shadow 是否阴影
labeldistance label绘制位置,相对于半径的比例, 如<1则绘制在饼图内侧
autopct 控制饼图内百分比设置,可以使用format字符串或者format function
'%1.1f'指小数点前后位数(没有用空格补齐)
pctdistance 类似于labeldistance,指定autopct的位置刻度
radius 控制饼图半径普通画图
plt.pie(df['City_Category'].value_counts(), labels=df['City_Category'].unique(),autopct='%1.1f%%')
通过groupby聚合后画图
plt.pie(df.groupby('City_Category')['Purchase'].sum(), labels = df['City_Category'].unique(),autopct='%1.1f%%')