如何将非唯一的 Pandas 列变成唯一的列

pet*_*ete 4 python dataframe pandas

假设我有以下数据框:

import pandas as pd

df = pd.DataFrame({'Name': ['Jim','Bob','Tim','Sal','Mel'], 
                   'Time': [7,7,7,8,9], 
                   'Value':[15,13,17,6,27]})
Out[1]:
  Name  Time  Value
0  Jim     7     15
1  Bob     7     13
2  Tim     7     17
3  Sal     8      6
4  Mel     9     27
Run Code Online (Sandbox Code Playgroud)

但我想Time成为数据中的唯一列,仍然是数字形式。例如,该系列7Time可能是7.00, 7.01, 7.02或者7.0, 7.1, 7.2等我怎么会改变这个非唯一数字熊猫列成一个独特的一个仍然是数字?

Man*_*dos 8

您可以使用cumcount

df['Time'] += df.groupby('Time').cumcount() / 10
Run Code Online (Sandbox Code Playgroud)
    Name    Time    Value
0   Jim     7.0     15
1   Bob     7.1     13
2   Tim     7.2     17
3   Sal     8.0     6
4   Mel     9.0     27
Run Code Online (Sandbox Code Playgroud)

  • 我认为“cumcount”是正确的选择。不过,我会除以 `df.groupby('Time').size().max()` (假设整数倍),这样如果有超过 10 个观察值,就不会泄漏到其他时间。 (2认同)