Python 如何在pandas中对数据帧中的数据进行装箱
我有一个时间序列数据,比如机器读数如下(比如) 如何更改数据帧,如下所示Python 如何在pandas中对数据帧中的数据进行装箱,python,pandas,dataframe,statistics,Python,Pandas,Dataframe,Statistics,我有一个时间序列数据,比如机器读数如下(比如) 如何更改数据帧,如下所示 If data in dataframe <= 25 percentile, value = 0.25, if 25p < data <=50p value = 0.50, if 50p<data <= 75p, value = 0.75, if data>75p , value = 1 但它返回0,0.25,0.5,0.75,1作为分类值,但我需要它们作为浮点值进行进一步分析。
If data in dataframe <= 25 percentile, value = 0.25,
if 25p < data <=50p value = 0.50,
if 50p<data <= 75p, value = 0.75,
if data>75p , value = 1
但它返回0,0.25,0.5,0.75,1作为分类值,但我需要它们作为浮点值进行进一步分析。如何操作?您可以通过以下方式将其转换为浮动: 更好的方法是使用,如所述:
@jezrael最好使用
pd.qcut(x=df.machine\u r,q=[0,25,5,8,1.],labels=labels)。aType(float)
比单独计算每个分位数和装箱更好。感谢Sandeep Kadapa。这段代码使它变得容易多了。
If data in dataframe <= 25 percentile, value = 0.25,
if 25p < data <=50p value = 0.50,
if 50p<data <= 75p, value = 0.75,
if data>75p , value = 1
p25 = df['machine_r'].quantile(0.25) ## p25 is 25 percentile
p50 = df['machine_r'].quantile(0.5)
p75 = df['machine_r'].quantile(0.8)
p100 = df['machine_r'].quantile(1)
bins = [-100,p25,p50,p75,p100]
labels = [0.25, 0.5,0.75,1]
df['machine_r'] = pd.cut(df['copper'], bins=bins,labels=labels)
df['new'] = pd.cut(df['machine_r'], bins=bins,labels=labels).astype(float)
df['new'] = pd.qcut(x=df.machine_r, q=[0, .25, .5, .8, 1.], labels=labels).astype(float)
print (df)
machine_r new
0 1 0.25
1 2 0.50
2 1 0.25
3 5 0.75
4 3 0.50
5 4 0.75
6 5 0.75
7 1 0.25
8 2 0.50
9 3 0.50
10 4 0.75
11 5 0.75
12 7 1.00
13 8 1.00
14 1 0.25
15 2 0.50
print (df.dtypes)
machine_r int64
new float64
dtype: object