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和matplotlibhttps://www.jianshu.com/p/4b925654f506
- Matplotlib 要求原始数据的输入类型为 Numpy 数组
- Seaborn 要求原始数据的输入类型为 pandas 的 Dataframe 或 Numpy 数组
import seaborn as sns
sns.countplot(df['Gender'])也可以写成: sns.countplot(df.Gender)
9.seaborn中的countplot的hue参数,可以通过控制hue参数,来更细分数据
关于countplot的用法:
- http://seaborn.pydata.org/generated/seaborn.countplot.html?highlight=countplot#seaborn.countplot
- https://blog.csdn.net/qixizhuang/article/details/85093544
- https://segmentfault.com/a/1190000015310299
sns.countplot(df['Age'],hue=df['Gender'])
10.理解pandas中的apply()函数 和 python的lambda函数 和 %s %的用法
- 理解apply():
- http://www.cnblogs.com/wuzhiblog/p/python_new_row_or_col.html
- https://www.jianshu.com/p/84bed15e9e6b
- 理解lambda() :
- https://www.cnblogs.com/hf8051/p/8085424.html
- 理解%s %
- https://www.cnblogs.com/wh-ff-ly520/p/9390855.html
简单来说,
- 对于apply():
- 这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据。
- 结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数
- 会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。
- 对于lambda:其中的 x 是作为一个像for遍历里面的 i 值
- add = lambda x, y : x+y
- add(1,2) # 结果为3
- 需求:将列表中的元素按照绝对值大小进行升序排列
- list1 = [3,5,-4,-1,0,-2,-6]
- sorted(list1, key=lambda x: abs(x))
- add = lambda x, y : x+y
- 对于%s % : 它是作为一个可输入或可变化的变量
- name= input("Please input your name: ")
- print("Hello, %s good morning!" %name)
- Please input your name: Xiaolizi #输入名字Xiaolizi
- Hello, Xiaolizi good morning! #print 命令<br><br><br><br>
![c876a1998ee567a1f1768aaaeb69e088.png](https://i-blog.csdnimg.cn/blog_migrate/2a45b553177cbf4d2081789156d39b87.jpeg)
11.画饼图
https://blog.csdn.net/jagbiam1000/article/details/79595279
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%%')
![fb23f890c947be4a2b77e10f5179a453.png](https://i-blog.csdnimg.cn/blog_migrate/08b990050461f40d95978e0000cdfc16.jpeg)
- 通过groupby聚合后画图
plt.pie(df.groupby('City_Category')['Purchase'].sum(), labels = df['City_Category'].unique(),autopct='%1.1f%%')
![ecd358f28b7b3516636ab17d3b22f9f7.png](https://i-blog.csdnimg.cn/blog_migrate/f20da4a8143d533a20a02bbb8ac17868.jpeg)