科学数据库----Matplotlib+Pandas小练习(持续更新)

一、数据加载

### Step 1. 导入相应的模块
from pandas import DataFrame,Series
import pandas as pd
import numpy as np
#Step 2. 加载文件
pd.read_csv("datasets/users.csv",sep='|')

### Step 3. 将加载的数据集赋值给变量users.
users = pd.read_csv("datasets/users.csv",sep="|")

### Step 4. 以occupation分组,求每一种职业所有用户的平均年龄
Age = users["age"].groupby(users["occupation"]).mean()
### Step 5. 求每一种职业男性的占比,作为新的一列(male_pct)创建新的数据集中,并按照从低到高的顺序排列

# 去重
chipo_filtered = chipo.drop_duplicates(['item_name','quantity'])

# 只选择数量等于1的产品 
chipo_one_prod = chipo_filtered[chipo_filtered.quantity == 1]

# 只选择iTimeNead和ItMeMax价格列 
price_per_item = chipo_one_prod[['item_name', 'item_price']]

# 降序排列
price_per_item.sort_values(by = "item_price", ascending = False)
### Step 6. 获取每一种职业对应的最大和最小的用户年龄
def get_age(group): 
    return { 'min': group.min(), 'max': group.max(),} 

grouped = users.age.groupby(users.occupation) 
grouped.apply(get_age).unstack()

二、数据过滤和排序

import pandas as pd
import numpy as np
from pandas import DataFrame,Series
chipo = pd.read_csv("datasets/chipotle.csv",sep="\t")

###. 计算出有多商品大于10美元
chipo['new_item_price'] = chipo['item_price'].str.replace('$','').apply(pd.Series)
chipo['new_item_price'] = chipo['new_item_price'].astype(float)
chipo['new_item_price'].loc[chipo['new_item_price']>10].count()

### 输出一个只包含两列, item_name 和 item_price的dataframe
dataframe= chipo[["item_name","item_price"]]

### . 根据商品的价格对数据进行排序
chipo2 = pd.read_csv("./datasets/chipotle.csv",sep = "\t")
chipo.sort_values(by='item_price')

三、Matplotlib+Pandas

import matplotlib.pyplot as plt
from pandas import Series,DataFrame
import numpy as np
import pandas as pd
plt.rcParams["font.sans-serif"]=['SimHei']  # 用于正常显示中文标签
plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
df = pd.read_csv("flights.csv") #加载数据

##3.1、用折线图画出乘客数量虽年份变化的走势图

number = df["passengers"].groupby(df["year"]).sum()
year2 = DataFrame(number)
year = year2.index
year=list(year)
number = list(number)
# year,number##俩列表
#画折线图

x = year
y = number
plt.plot(x,y,label="乘客数量随年份变化")
plt.xlabel('年份')
plt.ylabel('人数')
plt.title('乘客数量随年份变化')
plt.legend()
plt.show()

                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      科学数据库----Matplotlib+Pandas小练习(持续更新)_第1张图片

3.2、分析乘客在一年中各月份的分布(在一张柱状图中画)

number = df["passengers"].groupby([df["year"],df["month"]]).sum().unstack()
number
number.plot(kind="bar",figsize=(23,8))

科学数据库----Matplotlib+Pandas小练习(持续更新)_第2张图片

你可能感兴趣的:(pandas)