2017-08-30 194 views
0
df=pd.DataFrame([ 
[56.7,7068.7], [57.19,7040.4], [60.71,8974.25], [60.875,8933.8], 
[60.93,8891.3], [60.955,9479.7], [60.965,8962.35], [61.01,9044.8], 
[61.01,8980.35], [61.145,9438.5], [61.28,9441.15], [61.375,9042.5], 
[61.45,9374.5], [61.46,9431.6], [61.47,9533.5], [61.5,9427.8] 
], columns=['RPM','Power']) 


def round_to_value(number,roundto): 
    return (round(number/roundto) * roundto) 

rpmstart=round_to_value(df['RPM'].min(),0.5) 
rpmend=round_to_value(df['RPM'].max(),0.5)+1 
groups=df.groupby(pd.cut(df['RPM'], np.arange(rpmstart,rpmend,1.0))).mean() 
groups['band']=groups.index 
df['avg']=pd.cut(df['RPM'], np.arange(rpmstart,rpmend,1.0)) 

原来的问题更换同一箱或类别的值是在这里:Averaging a quantity for a particular RPM band and replacing in Pandas dataframe从一个数据帧到另一个

基本上,我希望能够进行平均的功率为1转带,从56.5-开始57.5在有效数据帧中,并替换数据帧'df'中相关RPM波段的功率值。 我做了这个代码,它部分做到了,我被卡住了。 Dataframe'组'具有RPM范围和平均功率,'df.avg'也具有RPM带。我怎样才能将'群组'的力量替换成同一乐队的'df'?你能帮我解决吗?

回答

0

我已经想通了。这是最终的代码,它将找到RPM所在的区间,并找出该区间内所有功率的平均功率。

df=pd.DataFrame([ 
[56.7,7068.7], [57.19,7040.4], [60.71,8974.25], [60.875,8933.8], 
[58.5,8250.3], [58.6,8520.7], [58.8,8999.0], [59.2,9020.1], 
[60.93,8891.3], [60.955,9479.7], [60.965,8962.35], [61.01,9044.8], 
[61.01,8980.35], [61.145,9438.5], [61.28,9441.15], [61.375,9042.5], 
[61.45,9374.5], [61.46,9431.6], [61.47,9533.5], [61.5,9427.8],[59.6,8920] 
], columns=['RPM','Power']) 

def round_to_value(number,roundto): 
    return (round(number/roundto) * roundto) 

rpmstart=round_to_value(df['RPM'].min(),0.5) 
rpmend=round_to_value(df['RPM'].max(),0.5)+1 
groups=df.groupby(pd.cut(df['RPM'], np.arange(rpmstart,rpmend,1.0))).mean() 
groups['band']=groups.index 
glen=range(0,len(groups)) 
groups['in']=glen 
groups=groups.set_index('in') 
df['band']=pd.cut(df['RPM'], np.arange(rpmstart,rpmend,1.0)) 
df3=pd.merge(df,groups, on=['band'], how='inner')      
df3=df3.rename (columns={'Power_x':'Avg_Shaft_Power', 
'Power_y':'RPM_Avg_Power', 'RPM_x':'Avg_Shaft_Speed'}) 
df3.drop(['RPM_y'], axis=1, inplace=True) 

谢谢。

Regards Arun

相关问题