使用 panda 对列中的重复值进行分类

我有一个数据帧,我在数据帧名称“压力”中有一列它具有重复值,我想对其进行分类。我有这样的列 在这里输入图像描述

pressure

0.03

0.03

0.03

2.07

2.07

2.07

3.01

3.01

我尝试过groupby()方法,但无法制作分段列。我认为在熊猫中很容易,任何人都可以在这方面帮助我。我需要这样的输出 在这里输入图像描述

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


梵蒂冈之花
浏览 93回答 2
2回答

回首忆惘然

如果性能很重要,请使用因子分解:data["Segment"]= pd.factorize(data["pressure"])[0] + 1print (data)   pressure  Segment0      0.03        11      0.03        12      0.03        13      2.07        24      2.07        25      2.07        26      3.01        37      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] + 1751 µs ± 3.97 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

不负相思意

使用列中的唯一值创建,并使用相同的标签,然后使用dictpressurereplaced = {j: i for i,j in enumerate(data["Pressure"].unique(),start=1)}data["Segment"]= data["Pressure"].replace(d).astype("int")print(data)输出:Pressure   Segment0.03      10.03      10.03      12.07      22.07      22.07      23.01      33.01      3
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python