精华内容
下载资源
问答
  • 对Excel数据进行读取并重新整理至新Excel,并绘制Excel中数据为图表
  • 数据分析实例MovieLens 1M数据集测量评价分歧美国1880~2010年婴儿名字分析名字趋势计量命名多样性的增加“最后一个字母”革命男孩的名字变成女孩的名字(以及反向)2012年美国联邦选举委员会数据库按职业和雇主的...
  • Python数据分析实例

    万次阅读 多人点赞 2019-06-14 22:13:37
    Python数据分析 Python爬取网页数据

    Python数据分析

    Python爬取网页数据

    // An highlighted block
    import requests
    if __name__=="__main__":
        response = requests.get("https://book.douban.com/subject/26986954/")
        content = response.content.decode("utf-8")
        print(content)
    
    // An highlighted block
    import requests
    url="https://pro.jd.com/mall/active/4BNKTNkRMHJ48QQ5LrUf6AsydtZ6/index.html"
    try:
        r=requests.get(url)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        print(r.text[:100])
    except:
        print("爬取失败")
    

    Python生成柱状图

    // An highlighted block
    import matplotlib.pyplot as plt  
      
    num_list = [1.5,0.6,7.8,6]  
    plt.bar(range(len(num_list)), num_list,color='rbgy')  
    plt.show()  
    

    在这里插入图片描述
    Python生成堆状柱状图

    // An highlighted block
    import matplotlib.pyplot as plt  
      
    name_list = ['Monday','Tuesday','Friday','Sunday']  
    num_list = [1.5,0.6,7.8,6]  
    num_list1 = [1,2,3,1]  
    plt.bar(range(len(num_list)), num_list, label='boy',fc = 'y')  
    plt.bar(range(len(num_list)), num_list1, bottom=num_list, label='girl',tick_label = name_list,fc = 'r')  
    plt.legend()  
    plt.show()  
    

    在这里插入图片描述
    Python生成竖状柱状图

    // An highlighted block
    import matplotlib.pyplot as plt  
      
    name_list = ['Monday','Tuesday','Friday','Sunday']  
    num_list = [1.5,0.6,7.8,6]  
    num_list1 = [1,2,3,1]  
    x =list(range(len(num_list)))  
    total_width, n = 0.8, 2  
    width = total_width / n  
      
    plt.bar(x, num_list, width=width, label='boy',fc = 'y')  
    for i in range(len(x)):  
        x[i] = x[i] + width  
    plt.bar(x, num_list1, width=width, label='girl',tick_label = name_list,fc = 'r')  
    plt.legend()  
    plt.show()  
    

    在这里插入图片描述
    Python生成折线图

    // An highlighted block
    import pandas as pd
    import numpy as np
     
    df = pd.DataFrame(np.random.rand(15, 4), columns=['a', 'b', 'c', 'd'])
    df.plot.area() 
    

    在这里插入图片描述
    Python生成柱状图

    // An highlighted block
    import pandas as pd
    import numpy as np
     
    df = pd.DataFrame(3 * np.random.rand(5), index=['a', 'b', 'c', 'd','e'], columns=['x'])
    df.plot.pie(subplots=True)
    

    在这里插入图片描述
    Python生成箱型图

    // An highlighted block
    #首先导入基本的绘图包
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    
    #添加成绩表
    plt.style.use("ggplot")
    plt.rcParams['axes.unicode_minus'] = False
    plt.rcParams['font.sans-serif']=['SimHei'] 
    
    #新建一个空的DataFrame
    df=pd.DataFrame()
    
    // An highlighted block
    df["英语"]=[76,90,97,71,70,93,86,83,78,85,81]
    df["经济数学"]=[65,95,51,74,78,63,91,82,75,71,55]
    df["西方经济学"]=[93,81,76,88,66,79,83,92,78,86,78]
    df["计算机应用基础"]=[85,78,81,95,70,67,82,72,80,81,77]
    df
    
    // An highlighted block
    plt.boxplot(x=df.values,labels=df.columns,whis=1.5)
    plt.show()
    

    在这里插入图片描述

    // An highlighted block
    #用pandas自带的画图工具更快
    df.boxplot()
    plt.show()
    

    在这里插入图片描述
    Python生成正态分布图

    // An highlighted block
    # -*- coding:utf-8 -*-
    # Python实现正态分布
    # 绘制正态分布概率密度函数
    import numpy as np
    import matplotlib.pyplot as plt
    import math
    
    u = 0  # 均值μ
    u01 = -2
    sig = math.sqrt(0.2)  # 标准差δ
    
    x = np.linspace(u - 3 * sig, u + 3 * sig, 50)
    y_sig = np.exp(-(x - u) ** 2 / (2 * sig ** 2)) / (math.sqrt(2 * math.pi) * sig)
    print(x)
    print("=" * 20)
    print(y_sig)
    plt.plot(x, y_sig, "r-", linewidth=2)
    plt.grid(True)
    plt.show()
    

    在这里插入图片描述
    喜欢的小伙伴可以尝试一下哦

    这是小编公众号,请动动您可爱的小手手,关注一下💓😘
    在这里插入图片描述

    展开全文
  • 数据分析实例之股票市场数据分析

    千次阅读 2018-10-27 22:04:59
    学了一段时间的python数据分析以后,下面来完成一个股票数据分析的实际案例。 1.数据获取: 去雅虎财务上面搜索,具体网址如下: https://finance.yahoo.com/ 安装pandas-datareader pip install pandas-datareader ...

    学了一段时间的python数据分析以后,下面来完成一个股票数据分析的实际案例。
    1.数据获取:
    去雅虎财务上面搜索,具体网址如下:
    https://finance.yahoo.com/
    安装pandas-datareader

    pip install pandas-datareader
    

    在这里我选择的是苹果公司的股票数据做测试,网址如下:
    https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch
    代码如下:
    初步获取Apple.Inc的股票基本信息

    import pandas_datareader as pdr
    # 苹果股票数据,代码为AAPL
    apple = pdr.get_data_yahoo('AAPL')
    print(apple.head())
    print(apple.shape)
    print(apple.tail())
    print(apple.describe())
    print(apple.info())
    

    在这里插入图片描述

    2.数据分析:
    (1)历史趋势分析:

    import numpy as np
    import pandas as pd
    from pandas import Series,DataFrame
    
    # 股票数据读取
    import pandas_datareader as pdr
    
    # 可视化
    import matplotlib.pyplot as plt
    
    # time
    from datetime import datetime
    
    start = datetime(2009,12,31)
    Apple = pdr.get_data_yahoo('AAPL',start=start)
    Microsoft = pdr.get_data_yahoo('MSFT',start=start)
    
    # 将数据存入CSV文件
    # Apple.to_csv('Apple.csv')
    # Microsoft.to_csv('Microsoft.csv')
    
    # 苹果和微软的股票价格对比
    Apple['Adj Close'].plot(legend=True,label='Apple.Inc')
    Microsoft['Adj Close'].plot(legend=True,label='Microsoft')
    plt.show()
    
    # 交易量对比
    Apple['Volume'].plot(legend=True,label='Apple.Inc')
    Microsoft['Volume'].plot(legend=True,label='Microsoft')
    plt.show()
    
    # 股票价格极差对比
    Apple['high-low'] = Apple['High'] - Apple['Low']
    Microsoft['high-low'] = Apple['High'] - Apple['Low']
    Apple['high-low'].plot(label='Apple.Inc')
    Microsoft['high-low'].plot(label='Microsoft')
    plt.show()
    
    # daily return(每天变化情况)
    Apple['daily return'] = Apple['Adj Close'].pct_change()
    Apple['daily return'].plot(label='Apple.Inc',figsize=(15,8),linestyle='--',marker='o')
    plt.show()
    Apple['daily return'].plot(label='Apple.Inc',kind='hist')
    plt.show()
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (2)风险评估分析:
    分位数:
    分位数,亦称分位点,是指用分割点将一个随机变量的概率分布范围分为几个具有相同概率的连续区间。分割点的数量比划分出的区间少1,例如3个分割点能分出4个区间。 常用的有中位数、四分位数、十分位数、百分位数等。q-quantile是指将有限值集分为q个接近相同尺寸的子集。

    import numpy as np
    import pandas as pd
    from pandas import Series,DataFrame
    import seaborn as sns
    
    # 股票数据读取
    import pandas_datareader as pdr
    
    # 可视化
    import matplotlib.pyplot as plt
    
    # time
    from datetime import datetime
    
    start = datetime(2015,1,1)
    company=['AAPL','GOOG','MSFT','AMZN','FB']
    top_tech_df = pdr.get_data_yahoo(company,start=start)['Adj Close']
    top_tech_dr = top_tech_df.pct_change()
    
    # 将数据存入CSV文件
    # Apple.to_csv('Apple.csv')
    # Microsoft.to_csv('Microsoft.csv')
    
    top_tech_df.plot()
    plt.show()
    
    # 散点图
    sns.jointplot('AAPL','GOOG',top_tech_dr,kind='scatter')
    plt.show()
    
    sns.pairplot(top_tech_dr.dropna())
    plt.show()
    
    # 分位数,有95%的把握在这个区间里面,应用于风险评估
    top_tech_dr['AAPL'].quantile(0.05)
    

    在这里插入图片描述

    展开全文
  • python做数据分析实例

    千次阅读 热门讨论 2017-10-08 19:02:24
    本文用到的数据在评论区留下邮箱即可。 本文通过对美国枪杀数据的探索,综合运用python做一些数据的提取和统计

    本文用到的数据,可以加QQ跟群主获取:
    群名称:PYTHONERS-数据
    群 号:663468799
    学习python和数据分析推荐地方: www.datacamp.com
    获取datacamp官网会员的方式:get_datacamp()


    本文用到的数据在评论区留下邮箱即可。或者点击这里可以拿到: guns.csv

    第一步:

    使用csv模块以列表形式读取数据集。

    导入csv模块。
    
    使用open()函数打开文件。
    
    使用csv.reader()函数加载打开的文件。
    

    在结果上调用list()以获取文件中所有数据的列表。

    将结果分配给变量data。
    

    显示第一5行data以验证一切。

    import csv 
    with open("guns.csv", "r") as file:
        data = list(csv.reader(file))
    data[:5]
    
    
    [['',
      'year',
      'month',
      'intent',
      'police',
      'sex',
      'age',
      'race',
      'hispanic',
      'place',
      'education'],
     ['1',
      '2012',
      '01',
      'Suicide',
      '0',
      'M',
      '34',
      'Asian/Pacific Islander',
      '100',
      'Home',
      '4'],
     ['2', '2012', '01', 'Suicide', '0', 'F', '21', 'White', '100', 'Street', '3'],
     ['3',
      '2012',
      '01',
      'Suicide',
      '0',
      'M',
      '60',
      'White',
      '100',
      'Other specified',
      '4'],
     ['4', '2012', '02', 'Suicide', '0', 'M', '64', 'White', '100', 'Home', '4']]
    

    第二步:

    提取第一行data,并将其分配给变量headers。
    
    删除第一行data。
    
    显示headers。
    
    显示第一5行data以验证是否正确删除了标题行。
    
    headers = data[0]
    data = data[1:]
    print(headers)
    print(data[:5])
    
    ['', 'year', 'month', 'intent', 'police', 'sex', 'age', 'race', 'hispanic', 'place', 'education']
    [['1', '2012', '01', 'Suicide', '0', 'M', '34', 'Asian/Pacific Islander', '100', 'Home', '4'], ['2', '2012', '01', 'Suicide', '0', 'F', '21', 'White', '100', 'Street', '3'], ['3', '2012', '01', 'Suicide', '0', 'M', '60', 'White', '100', 'Other specified', '4'], ['4', '2012', '02', 'Suicide', '0', 'M', '64', 'White', '100', 'Home', '4'], ['5', '2012', '02', 'Suicide', '0', 'M', '31', 'White', '100', 'Other specified', '2']]
    

    第三步:

    使用列表推导从中提取year列data。

    因为year列是数据中的第二列,您需要1在每行的索引中获取元素。
    
    将结果分配给变量years。
    

    创建一个空的字典year_counts。

    循环遍历每个元素years。

    如果元素不是键year_counts,创建它,并将值设置为1。
    
    如果元素是键year_counts,则将值增加1。
    

    显示year_counts每年发生多少枪死亡事件。

    years = [row[1] for row in data]
    year_counts = {}
    for year in years:
        if year in year_counts:
            year_counts[year] += 1
        else:
            year_counts[year] = 1
    year_counts
    
    {'2012': 33563, '2013': 33636, '2014': 33599}
    

    第四步:

    使用list comprehension datetime.datetime为每行创建一个对象。将结果分配给dates。

    year在每个行中的第二元件列。
    
    该month柱是在每行中的第三个元素。
    
    确保使用int()转换year和month整数。
    
    通过year,month并day=1进入datetime.datetime()功能。
    

    显示第一5行dates以验证一切正常。

    计数每个唯一日期发生的次数dates。将结果分配给date_counts。

    这跟我们在最后一个屏幕中做了类似的过程year_counts。
    

    显示date_counts。

    import datetime
    
    dates = [datetime.datetime(year=int(row[1]), month=int(row[2]), day=1)  for row in data]
    date_counts = {}
    dates[:5]
      
    for date in dates:
        if date in date_counts:
            date_counts[date] +=1
        else:
            date_counts[date] = 1
    date_counts
    
    {datetime.datetime(2012, 1, 1, 0, 0): 2758,
     datetime.datetime(2012, 2, 1, 0, 0): 2357,
     datetime.datetime(2012, 3, 1, 0, 0): 2743,
     datetime.datetime(2012, 4, 1, 0, 0): 2795,
     datetime.datetime(2012, 5, 1, 0, 0): 2999,
     datetime.datetime(2012, 6, 1, 0, 0): 2826,
     datetime.datetime(2012, 7, 1, 0, 0): 3026,
     datetime.datetime(2012, 8, 1, 0, 0): 2954,
     datetime.datetime(2012, 9, 1, 0, 0): 2852,
     datetime.datetime(2012, 10, 1, 0, 0): 2733,
     datetime.datetime(2012, 11, 1, 0, 0): 2729,
     datetime.datetime(2012, 12, 1, 0, 0): 2791,
     datetime.datetime(2013, 1, 1, 0, 0): 2864,
     datetime.datetime(2013, 2, 1, 0, 0): 2375,
     datetime.datetime(2013, 3, 1, 0, 0): 2862,
     datetime.datetime(2013, 4, 1, 0, 0): 2798,
     datetime.datetime(2013, 5, 1, 0, 0): 2806,
     datetime.datetime(2013, 6, 1, 0, 0): 2920,
     datetime.datetime(2013, 7, 1, 0, 0): 3079,
     datetime.datetime(2013, 8, 1, 0, 0): 2859,
     datetime.datetime(2013, 9, 1, 0, 0): 2742,
     datetime.datetime(2013, 10, 1, 0, 0): 2808,
     datetime.datetime(2013, 11, 1, 0, 0): 2758,
     datetime.datetime(2013, 12, 1, 0, 0): 2765,
     datetime.datetime(2014, 1, 1, 0, 0): 2651,
     datetime.datetime(2014, 2, 1, 0, 0): 2361,
     datetime.datetime(2014, 3, 1, 0, 0): 2684,
     datetime.datetime(2014, 4, 1, 0, 0): 2862,
     datetime.datetime(2014, 5, 1, 0, 0): 2864,
     datetime.datetime(2014, 6, 1, 0, 0): 2931,
     datetime.datetime(2014, 7, 1, 0, 0): 2884,
     datetime.datetime(2014, 8, 1, 0, 0): 2970,
     datetime.datetime(2014, 9, 1, 0, 0): 2914,
     datetime.datetime(2014, 10, 1, 0, 0): 2865,
     datetime.datetime(2014, 11, 1, 0, 0): 2756,
     datetime.datetime(2014, 12, 1, 0, 0): 2857}
    

    第五步:

    计数sex列中每个项目的次数。

    将结果分配给sex_counts。
    

    计数race列中每个项目的次数。

    将结果分配给race_counts。
    

    显示race_counts和sex_counts验证您的工作,并查看是否可以发现任何模式。

    写一个降价细胞,详细说明你迄今为止学到的内容,你认为可能需要进一步检查。

    sex_counts = {}
    race_counts = {}
    sexs = [row[5] for row in data[1:]]
    races = [row[7] for row in data[1:]]
    def count(items):
        item_counts = {}
        for item in items:
            if item in item_counts:
                item_counts[item] += 1
            else:
                item_counts[item] = 1
        return item_counts
    sex_counts = count(sexs)
    race_counts = count(races)
    
    sex_counts
    race_counts
    
    {'Asian/Pacific Islander': 1326,
     'Black': 23296,
     'Hispanic': 9022,
     'Native American/Native Alaskan': 917,
     'White': 66237}
    

    用到的知识点:

    1. 利用CSV模块导入CSV文件,将数据转化成数据列表
    2. 利用列表切片,删除表头
    3. 利用datetime模块,列表推导式,统计年份数量
    4. 统计性别和种族数量

    第六步:

    读入census.csv并转换为列表列表。将结果分配给census变量。
    
    显示census以验证您的工作。
    
    with open("census.csv") as file:
        census = list(csv.reader(file))
        
    
    
    ['Id', 'Year', 'Id', 'Sex', 'Id', 'Hispanic Origin', 'Id', 'Id2', 'Geography', 'Total', 'Race Alone - White', 'Race Alone - Hispanic', 'Race Alone - Black or African American', 'Race Alone - American Indian and Alaska Native', 'Race Alone - Asian', 'Race Alone - Native Hawaiian and Other Pacific Islander', 'Two or More Races']
    ['cen42010', 'April 1, 2010 Census', 'totsex', 'Both Sexes', 'tothisp', 'Total', '0100000US', '', 'United States', '308745538', '197318956', '44618105', '40250635', '3739506', '15159516', '674625', '6984195']
    

    第七步:

    手动创建一个字典,mapping将每个键映射race_counts到比赛的人口数census。

    在字典中的键应该是Asian/Pacific Islander,Black,Native
    
    American/Native Alaskan,Hispanic,和White。
    
    在这种情况下Asian/Pacific Islander,您需要添加来自censusfor Race
    Alone - Asian和... 的计数Race Alone - Native Hawaiian and Other Pacific Islander。
    

    创建一个空字典,race_per_hundredk。

    循环通过每个键race_counts。

    将与键相关联的值除以与键race_counts相关联的值mapping。
    
    通过乘法100000。
    
    将结果分配给相同的键race_per_hundredk。
    

    当你完成后,race_per_hundredk应该包含每个100000人种族种族枪支死亡率。

    打印race_per_hundredk以验证您的工作。

    mapping = {
        "Asian/Pacific Islander": 15159516 + 674625,
        "Native American/Native Alaskan": 3739506,
        "Black": 40250635,
        "Hispanic": 44618105,
        "White": 197318956
    }
    
    race_per_hundredk = {}
    for item in race_counts:
        race_per_hundredk[item] = race_counts[item]/mapping[item]*100000
    
    race_per_hundredk
    
    
    
    
    
    {'Asian/Pacific Islander': 8.374309664161762,
     'Black': 57.8773477735196,
     'Hispanic': 20.220491210910907,
     'Native American/Native Alaskan': 24.521955573811088,
     'White': 33.56849303419181}
    

    第八步:

    intent使用列表解析提取列。该intent柱是在第四列中data。

    将结果分配给intents。
    

    race使用列表解析提取列。该race柱是在第八列data。

    将结果分配给races。
    

    创建一个空的字典 homicide_race_counts

    使用该enumerate()功能循环遍历每个项目races。应将该位置分配给循环变量i,并将值分配给循环变量race。

    检查在位置值i在intents。
    
    如果在位置值i的intents是Homicide:
    
        如果密钥race不存在homicide_race_counts,创建它。
        
        添加1到相关联的价值race在homicide_race_counts。
    

    完成后,homicide_race_counts应该为每个种族分类中的一个键data。相关的价值应该是该次种族的凶杀枪死亡人数。

    执行我们在最后一个屏幕使用也做了同样的程序mapping上homicide_race_counts得到从原始数据到每个率100000。

    显示homicide_race_counts以验证您的工作。

    将你的发现写在一个降价单元格中。

    使用降价单元格中的数据编写您要追求的任何后续步骤。

    intents = [row[3] for row in data[1:]]
    
    races = [row[7] for row in data[1:]]
    
    homicide_race_counts = {}
    
    for i, race in enumerate(races):
        if intents[i] == "Homicide":
            if race in homicide_race_counts:
                homicide_race_counts[race] += 1
            else:
                homicide_race_counts[race] = 1
    homicide_race_counts
    
    {'Asian/Pacific Islander': 559,
     'Black': 19510,
     'Hispanic': 5634,
     'Native American/Native Alaskan': 326,
     'White': 9147}
    
    hm_race_per_hundredk = {}
    
    for item in homicide_race_counts:
        hm_race_per_hundredk[item] = homicide_race_counts[item]/mapping[item]*100000
    
    hm_race_per_hundredk   
    
    
    {'Asian/Pacific Islander': 3.530346230970155,
     'Black': 48.471284987180944,
     'Hispanic': 12.627161104219914,
     'Native American/Native Alaskan': 8.717729026240365,
     'White': 4.6356417981453335}
    

    1

    展开全文
  • 1.2 描述数据特征 1.2.1 分析分类变量 title "分类变量的频数"; proc freq data=SASHELP.CARS; tables Make Model Type Origin DriveTrain / plots=(freqplot) missing; run; 1.2.2 分析数值变量 title ...

    1 描述统计

    1.1 描述表属性

    ods noproctitle;
    ods select attributes variables enginehost directory;
    
    proc datasets lib=SASHELP;
    	contents data=SASHELP.CARS order=collate 
    		out=WORK.TableAttributes (label="Contents Details for SASHELP.CARS");
    quit;
    
    proc print;
    run;
    

    1.2 描述数据特征

    1.2.1 分析分类变量

    title "分类变量的频数";
    
    proc freq data=SASHELP.CARS;
    	tables Make Model Type Origin DriveTrain / plots=(freqplot) missing;
    run;
    

    1.2.2 分析数值变量

    title "数值变量的描述性统计量";
    
    proc means data=SASHELP.CARS n nmiss min mean median max std;
    	var MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway Weight 
    		Wheelbase Length;
    run;
    
    title;
    
    proc univariate data=SASHELP.CARS noprint;
    	histogram MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway 
    		Weight Wheelbase Length;
    run;
    

    1.3 描述缺失数据

    ods noproctitle;
    
    proc format;
    	value _nmissprint low-high="非缺失";
    	value $_cmissprint " "=" " other="非缺失";
    run;
    
    proc freq data=SASHELP.CARS;
    	title3 "缺失数据频数";
    	title4 h=2 "图例: .、A、B,其他 = 缺失";
    	format MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway 
    		Weight Wheelbase Length _nmissprint.;
    	format Make Model Type Origin DriveTrain $_cmissprint.;
    	tables Make Model Type Origin DriveTrain MSRP Invoice EngineSize Cylinders 
    		Horsepower MPG_City MPG_Highway Weight Wheelbase Length / missing nocum;
    run;
    
    proc freq data=SASHELP.CARS noprint;
    	table Make * Model * Type * Origin * DriveTrain * MSRP * Invoice * EngineSize 
    		* Cylinders * Horsepower * MPG_City * MPG_Highway * Weight * Wheelbase * 
    		Length / missing out=Work._MissingData_;
    	format MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway 
    		Weight Wheelbase Length _nmissprint.;
    	format Make Model Type Origin DriveTrain $_cmissprint.;
    run;
    
    proc print data=Work._MissingData_ noobs label;
    	title3 "跨变量的缺失数据模式";
    	title4 h=2 "图例: .、A、B,其他 = 缺失";
    	format MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway 
    		Weight Wheelbase Length _nmissprint.;
    	format Make Model Type Origin DriveTrain $_cmissprint.;
    	label count="频数" percent="百分比";
    run;
    
    title3;
    
    proc delete data=Work._MissingData_;
    run;
    

    2 数据预处理

    2.1 列出数据

    title1 "列出数据 - SASHELP.BASEBALL";
    
    proc sort data=SASHELP.BASEBALL out=WORK.SORTTEMP;
    	by Team;
    run;
    
    proc print data=WORK.SORTTEMP label n;
    	var Position;
    	by Team;
    	sum Salary;
    run;
    
    proc delete data=work.SORTTEMP;
    run;
    
    title1;
    

    2.2 过滤数据

    proc sql noprint;
    	create table WORK.filter as select * from SASHELP.BASEBALL where(Salary LT 100 
    		AND Position EQ "CF");
    quit;
    

    2.3 排序数据

    proc sort data=SASHELP.BASEBALL out=WORK.sortDS noequals;
    	by descending Salary;
    run;
    

    2.4 排名数据

    proc rank data=SASHELP.BASEBALL descending out=WORK.Rank;
    	var Salary;
    	ranks rank_Salary;
    run;
    

    2.5 转换数据

    data WORK.transform;
    	set SASHELP.BASEBALL;
    	log_Salary=log(Salary);
    	inv_CrHits=1 / CrHits;
    run;
    

    2.6 标准化数据

    proc stdize data=SASHELP.BASEBALL method=std nomiss out=WORK.Stdize oprefix 
    		sprefix=Standardized_;
    	var Salary nHits nAtBat;
    run;
    

    2.7 重置码值

    data WORK.recodedValues;
    	set SASHELP.BASEBALL;
    
    	select (Salary);
    		when (100) _recodeVar_=99999;
    		when (200) _recodeVar_=88888;
    		otherwise _recodeVar_=Salary;
    	end;
    run;
    

    2.8 重置码范围

    data WORK.recodedRanges;
    	set SASHELP.BASEBALL;
    
    	select;
    		when (-1 <=Salary <=100) _recodeVar_=100;
    		otherwise _recodeVar_=Salary;
    	end;
    run;
    

    3 随机抽样

    3.1 简单随机抽样

    3.1.1 无放回不重复抽样

    proc surveyselect data=SASHELP.BASEBALL out=WORK.RandomSample 
    		method=srs samprate=0.3 seed=2019;
    	strata Position / alloc=prop;
    run;
    

    3.1.2 有放回重复抽样

    proc surveyselect data=SASHELP.BASEBALL out=WORK.RandomSample 
    	outhits method=urs sampsize=30 seed=2019;
    	strata Position / alloc=prop;
    run;
    

    3.2 分层随机抽样

    3.2.1 无放回不重复抽样

    proc sort data=SASHELP.BASEBALL out=WORK.SORTTempTableSorted;
    	by Position;
    run;
    
    proc surveyselect data=WORK.SORTTempTableSorted out=WORK.RandomSample 
    		method=srs samprate=0.3 seed=2019;
    	strata Position / alloc=prop;
    run;
    

    3.2.2 有放回重复抽样

    proc sort data=SASHELP.BASEBALL out=WORK.SORTTempTableSorted;
    	by Position;
    run;
    
    proc surveyselect data=WORK.SORTTempTableSorted out=WORK.RandomSample 
    	outhits method=urs sampsize=30 seed=2019;
    	strata Position / alloc=prop;
    run;
    
    
    展开全文
  • 数据透视表可以帮助我们快速的做一些统计方面的数据分析,也是很方便的。下面给出了五个简单的分析实例: 1. 统计各部门人数占总人数的百分比。主要就是修改生成的数据透视表的【值显示方式】,就不需要我们自己用...
  • 大数据数据分析案例

    2018-12-23 20:13:17
    titanic大数据数据分析案例,jupyter notebook 原码说明非常详细,带有数据集,代码,分析图表,特征工程分析
  • SPSS-相关分析(实例讲解)-数据分析

    万次阅读 多人点赞 2020-09-04 16:09:16
    一种现象的发展变化必然受与之相联系的其他现象发展变化的制约和影响。在统计学中,这种依存关系可以分成相关关系和回归函数关系。 (1)相关关系 现象之间存在着非严格、不确定的依存关系。...相关分析是研
  • Python代码抓取获取天气预报信息源码讲解。这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单。这段代码可以获取当地的天气和、任意城市的天气预报...python抓取广州天气并分析 实例源码
  • Matplotlib数据可视化的应用实例 分析 :2000至2017年各季度国民生产总值数据 分析国民生产总值: # -- coding:utf-8 -- import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] =...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 812,924
精华内容 325,169
关键字:

数据分析实例