我有一个数据帧'data'和一个字典'dict_repeat',它指定了重复一行的次数。例如,行包含名称‘杰克’应该重复三次"数据":
import pandas as pd
data = {'Name': ['Anna', 'Nick', 'Jack'],
'Age': [19, 21, 19]}
dict_repeat = {
'Anna': 1,
'Nick': 2,
'Jack': 3,
}
初始数据:
Name Age
0 Anna 19
1 Nick 21
2 Jack 19
所需输出:
Name Age
0 Anna 19
1 Nick 21
1 Nick 21
2 Jack 19
2 Jack 19
2 Jack 19
您可以使用Index.repeat
:
df = pd.DataFrame(data)
df2 = df.loc[df.index.repeat(df['Name'].map(dict_repeat))]
输出:
Name Age
0 Anna 19
1 Nick 21
1 Nick 21
2 Jack 19
2 Jack 19
2 Jack 19