我有一个数据框,并且在数据框名称“ Pressure”中有一列,它具有重复值,我想对其进行分类。我有这样的专栏 enter image description here
pressure
0.03
0.03
0.03
2.07
2.07
2.07
3.01
3.01
我尝试了groupby()方法,但无法创建细分栏。我认为在熊猫中这是一个简单的方法,任何人都可以帮助我。 我需要这样的输出 enter image description here
Pressue Segment
0.03 1
0.03 1
0.03 1
2.07 2
2.07 2
2.07 2
3.01 3
3.01 3
预先感谢
答案 0 :(得分:3)
如果性能很重要,请使用factorize
:
data["Segment"]= pd.factorize(data["pressure"])[0] + 1
print (data)
pressure Segment
0 0.03 1
1 0.03 1
2 0.03 1
3 2.07 2
4 2.07 2
5 2.07 2
6 3.01 3
7 3.01 3
性能:
data = pd.DataFrame({'pressure': np.sort(np.random.randint(1000, size=10000)) / 100})
In [312]: %timeit data["pressure"].replace({j: i for i,j in enumerate(data["pressure"].unique(),start=1)}).astype("int")
141 ms ± 3.11 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
In [313]: %timeit pd.factorize(data["pressure"])[0] + 1
751 µs ± 3.97 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
答案 1 :(得分:2)
使用dict
列中的唯一值创建pressure
并标记相应的值,然后使用replace
d = {j: i for i,j in enumerate(data["Pressure"].unique(),start=1)}
data["Segment"]= data["Pressure"].replace(d).astype("int")
print(data)
输出:
Pressure Segment
0.03 1
0.03 1
0.03 1
2.07 2
2.07 2
2.07 2
3.01 3
3.01 3