संख्याओं की दी गई श्रृंखला के लिए, मैं डुप्लिकेट प्रविष्टियों को ढूंढना चाहता हूं, और प्रत्येक डुप्लिकेट प्रविष्टि में क्रमशः 0.1 जोड़ना चाहता हूं। यहाँ एक उदाहरण है:

nums = pd.Series([1,2,3,4,5,5,5,6,7,8,9,9,10])
#some code here#
print(nums)
0      1
1      2
2      3
3      4
4      5
5      5.1
6      5.2
7      6
8      7
9      8
10     9
11     9.1
12    10
dtype: int64

मुझे लगा कि पहला कदम उस सूचकांक की पहचान करना होगा जिस पर संख्याओं की नकल की जाती है:

nums.duplicated()
    0     False
    1     False
    2     False
    3     False
    4     False
    5      True
    6      True
    7     False
    8     False
    9     False
    10    False
    11     True
    12    False
    dtype: bool

लेकिन मुझे अभी तक अगले कदमों का पता लगाना है, किसी भी मदद की सराहना की जाएगी।

1
Chewyham 22 सितंबर 2020, 08:23

1 उत्तर

सबसे बढ़िया उत्तर

GroupBy.cumcountका इस्तेमाल करें काउंटर के लिए Series से, 10 से भाग दें और मूल Series में जोड़ें:

s = nums.add(nums.groupby(nums).cumcount().div(10))
print (s)
0      1.0
1      2.0
2      3.0
3      4.0
4      5.0
5      5.1
6      5.2
7      6.0
8      7.0
9      8.0
10     9.0
11     9.1
12    10.0
dtype: float64
2
jezrael 22 सितंबर 2020, 05:25