Создать словарь для количества повторений для каждого Minute
, Series.map
, а затем повторить индекс с Index.repeat
, последнее использование DataFrame.loc
для повторяющихся строк:
print (df)
Minutiae LR
0 1 1.975476
1 2 1.082983
2 3 0.269608
3 4 0.878350
d = {1:2, 2:1, 3:5, 4:3}
df1 = df.loc[df.index.repeat(df['Minutiae'].map(d))]
print (df1)
Minutiae LR
0 1 1.975476
0 1 1.975476
1 2 1.082983
2 3 0.269608
2 3 0.269608
2 3 0.269608
2 3 0.269608
2 3 0.269608
3 4 0.878350
3 4 0.878350
3 4 0.878350
Сведения :
print (df['Minutiae'].map(d))
0 2
1 1
2 5
3 3
Name: Minutiae, dtype: int64
print (df.index.repeat(df['Minutiae'].map(d)))
Int64Index([0, 0, 1, 2, 2, 2, 2, 2, 3, 3, 3], dtype='int64')
Или создайте новый столбец для повторения:
df['repeat'] = [2,1,5,3]
print (df)
Minutiae LR repeat
0 1 1.975476 2
1 2 1.082983 1
2 3 0.269608 5
3 4 0.878350 3
df2 = df.loc[df.index.repeat(df['repeat'])]
print (df2)
Minutiae LR repeat
0 1 1.975476 2
0 1 1.975476 2
1 2 1.082983 1
2 3 0.269608 5
2 3 0.269608 5
2 3 0.269608 5
2 3 0.269608 5
2 3 0.269608 5
3 4 0.878350 3
3 4 0.878350 3
3 4 0.878350 3