我有一个数据框,如何根据列所属的范围将一列中的值转换为相应整数的列表。例如,
test = pd.DataFrame({"price": [0.1, 0.5, 0.2, 0.11, 0.8, 0.3, 0.9, 1.0, 0.47]})
out[1]:
price
0 0.10
1 0.50
2 0.20
3 0.11
4 0.80
5 0.30
6 0.90
7 1.00
8 0.47
然后,我需要根据值的范围将这些值转换为整数,例如,当x <= 0.1时,使x = 1,当0.1 我尝试了一些方法,但是效果不佳。请帮忙!非常感谢你!out[2]:
price price_new
0 0.10 1 # 0.10 belongs to [0, 0.1] ---> 1
1 0.50 5 # 0.50 belongs to (0.40, 0.5] ---> 5
2 0.20 2 .
3 0.11 2 .
4 0.80 8 .
5 0.30 3
6 0.90 9
7 1.00 10
8 0.47 5
答案 0 :(得分:4)
可以用熊猫切
<header class="header" id="header1">
<div class="row">
<div class="col-md-6">
<div class="circle">
<br>
<div class="caption">
<h2 class="title display-3">Stickers <strong>Personalizados</strong></h2>
<p>Lorem m nisi! Eum vitae ipsam veniam, ullam explicabo quaerat asperiores veritatis nam
reprehenderit necessitatibus sequi.</p>
</div>
<div class="row">
<div class="col-md-5">
<a href="stickers" class="btn btn-azul text-white btn-block">Comprar</a>
</div>
<div class="col-md-5 my-home-banner-image">
<a href="{% url 'shop:SamplePackPage' %}" class="btn btn-naranja text-white btn-block">Muestras
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<br>
<img class="" src="https://www.austinhomebrew.com/assets/images/sticke-alt-8989.png" width="440px" height="300px">
</div>
</div>
</header>
编辑:使用-和+ inf创建垃圾箱以包含极值。
bins = np.arange(0, 1.1, 0.1)
labels = np.arange(1, 11)
test['price_new'] = pd.cut(test.price, bins = bins, labels = labels)
price price_new
0 0.10 1
1 0.50 5
2 0.20 2
3 0.11 2
4 0.80 8
5 0.30 3
6 0.90 9
7 1.00 10
8 0.47 5
答案 1 :(得分:1)
为什么不尝试类似的事情:
df['price_new'] = (df['price']*10).round()
答案 2 :(得分:1)
对于此用例,您只需使用舍入功能并缩放数字即可获得所需的输出。
import pandas as pd
df = pd.DataFrame({"price": [0.1, 0.5, 0.2, 0.11, 0.8, 0.3, 0.9, 1.0, 0.47]})
df['price_new'] = df.price.multiply(10).round()
print(df)
#Output:
price price_new
0 0.10 1.0
1 0.50 5.0
2 0.20 2.0
3 0.11 1.0
4 0.80 8.0
5 0.30 3.0
6 0.90 9.0
7 1.00 10.0
8 0.47 5.0
答案 3 :(得分:1)
更像是天花板的圆形
np.ceil(df.price.mul(10)).astype(int)
Out[369]:
0 1
1 5
2 2
3 2
4 8
5 3
6 9
7 10
8 5
Name: price, dtype: int32