Python的Dataframe经过groupby后

阿呆上大学 发布于 2018/01/24 13:55
阅读 2K+
收藏 0

对df的某一列数据分区间得到新的一列,原始列(变桨消耗有功功率)数据类型是float的,使用分频函数得到新的一列(变桨消耗有功功率区间),新得到的这列数据的数值类型既包括float也包含string, 所以对新得到的列无法进行数值计算;查看代码,未发现异常,还请各位大神帮忙看看问题在哪,附上代码

df1=df.loc[:,['时间','整机状态', '变桨消耗有功功率','变桨待命状态','变桨正常状态']]

bin_min=0
bin_max=25
bin_size=0.2
column_relate="变桨消耗有功功率"
column_append="变桨消耗有功功率区间"
df1=data_bin(df1,bin_min,bin_max,bin_size,column_relate,column_append)

#调用分频函数

def  data_bin(df,bin_min,bin_max,bin_size,column_relate,column_append): 
    df[column_append]=""
    bin_size=int(bin_size*10)
    bin_min=bin_min*10
    bin_max=bin_max*10
    for bin_step in list(range(bin_min,bin_max,bin_size)):
        print(bin_step)
        bin_step=bin_step/10
        index1=df[column_relate]>=bin_step-bin_size/20
        index2=df[column_relate]<bin_step+bin_size/20
        index=index1&index2
        df[column_append][index]=bin_step
    index3=df[column_relate]>=bin_max/10-bin_size/20
    index4=df[column_relate]<=bin_min-bin_size/20
    index5=index3|index4
    df[column_append][index5]=0
    return(df)

加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部