文档章节

penalty python实现

s_zpchen1
 s_zpchen1
发布于 2017/04/03 00:01
字数 388
阅读 8
收藏 0

用了1个星期 终于算把 penalty 在python里实现了下面是代码

 

# encoding: utf-8

import pandas as pd
import numpy as np
from pandas import DataFrame as df

data=pd.read_csv('wdata.csv',header=None,names=['ID','Leg','A0','A1','A1a','A1b','A2a','A2b','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12','A13','A14','A15','A16','A17_1a','A17_1b','A17_2a','A17_2b','A17_4a','A17_4b','A17_5a','A17_5b','A17_6','A20','A21','A22','A23','A24a','A25','A26','A27','A28','A29','A30','A31','A32','A33','A34','A35','A35b','A35c','A36','A37','A38','A39','A40','A41','A42','A43','A44','A45','A46'])

de_data=['A5','A7','A9','A11']


"""
def def_jar(de_data):
    data_list=data.ix[:,de_data]
    for var_i in de_data:
        for var_id in range(0,data_list.shape[0]+1):
                if   data_list.ix[var_id:var_id,var_i] is 5:
                     data_list.ix[var_id:var_id,'new_%s'%var_i]='lev1'
                elif data_list.ix[var_id:var_id,var_i] is 4:
                     data_list.ix[var_id:var_id,'new_%s'%var_i]='lev2'
                else :
                     data_list.ix[var_id:var_id,'new_%s'%var_i]='lev3'
    print(data_list.head())
"""

def def_var(de_data):
    
    for i in de_data:
        
        new_data=[] #初始化中转列表   初始化和清空必须要相同缩进
        for each_line in data[i]:
            if each_line ==3:
                new_data.append('JAR')
            elif each_line >3:
                new_data.append('Too Much')
            else:
                new_data.append('Not Enough')
        data['N_%s'%i]=new_data
        new_data=new_data.clear    #清空中转列表
 

 
        
#def_var(de_data)

def_varlist=[]
def def_var2(de_data):
    for i in de_data:      
            data['N_%s'%i]=np.where(data[i]==3,'JAR',np.where(data[i]>3,'much','not'))
            def_varlist.append('N_%s'%i)

def_var2(de_data)

print(data.head())


#        table_mean2=pd.DataFrame(data.pivot_table('A10',columns='N_A5',aggfunc='mean'),columns='A10_A5')

de_data2=def_varlist

#  计算A10的三个组别的mean  dataframe
def creat_meantable(inde_var,de_data2):
    table_mean=pd.DataFrame()
    for var in de_data2:  
        temp=pd.DataFrame(data.pivot_table(inde_var,columns=var,aggfunc='mean')).T
        table_mean=table_mean.append(temp,ignore_index=True)
    table_mean.index=de_data2
    return table_mean

def creat_penc(inde_var,de_data2):
    table_penc=pd.DataFrame()
    for var in de_data2:
        temp=pd.DataFrame(data[var].value_counts(normalize=True)).T
        table_penc=table_penc.append(temp,ignore_index=True)
    table_penc.index=de_data2
    return table_penc 

table_meanall=creat_meantable('A10',de_data2)
table_penall=creat_penc('A10',de_data2)


table_penall['m_drop']=table_meanall['much']-table_meanall['JAR']

table_penall['n_drop']=table_meanall['not']-table_meanall['JAR']


table_penall['m_penalty']=-table_penall['m_drop']*table_penall['much']
table_penall['n_penalty']=table_penall['n_drop']*table_penall['not']

print(table_penall[['m_penalty','n_penalty']])

© 著作权归作者所有

上一篇: 结巴分词器
s_zpchen1
粉丝 0
博文 11
码字总数 2255
作品 0
佛山
私信 提问
python的解释器spython介绍

Python解释器spython介绍 简介   出于个人爱好和某种需求,我再16年对python的解释器产生了浓厚兴趣,并且下定决心重新实现一个版本。我个人再游戏服务器开发中,对c++嵌入lua和python都有...

知然
2017/02/27
0
0
用boost python加快vc程序开发

开源项目官方地址: http://www.xiaoniuhui.com/ 原文链接: http://xiaoniuhui.com/#!/用boost-python加快vc程序开发 目录 用标准c接口嵌入python 用boost python嵌入python 用python来实现业...

编码的风景
2013/08/27
1K
0
Pies 2.5.0 发布,Python 2 和 Python 3 的兼容层

Pies 2.5.0 版本支持 Python 2 和 Python 3 的兼容 meta-classes ,支持 lru——cache ,在 Python 2 和 Python 3 之间自动正确的使用 makes __str__ methods 方法。 Pies 实现了一个 Python...

oschina
2013/12/16
757
1
巧用 python 脚本控制你的C程序(首发在我的博客园)

http://www.cnblogs.com/haippy/archive/2011/09/17/2179902.html python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要...

大卷卷
2011/09/22
416
0
Python制作快递查询系统,再一次感受到了Python的强大!

导语 今天想发个简(qi)单(shi)的(jiu)练(shi)手(xiang)小(tou)项(ge)目(lan)~利用Python制作一个简单的快递查询系统。 让我们愉快地开始吧~本文源代码进群:700341555即可免费领取还可获取p...

妄心xyx
02/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
6
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
1K
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部