使用If语句复制pandas Python中的行



我想在下面的代码中复制行。如果bugs等于2,我想将该行复制两次,或者如果bugs等于3,我想将行复制三次,以此类推。在下面的例子中,如果我复制B(因为它等于2),我希望它的值减少1。the_result_i_want的结果如下:

import pandas as pd
df = pd.DataFrame(data={
'id': ['A', 'B', 'C'],
'bugs' : [  1,   2,   3],
})
the_result_i_want = pd.DataFrame(data={
'id': ['A', 'B','B', 'C','C','C'],
'bugs' : [1, 1,  1,   1,  1,   1],
})

提前感谢您!

def dup(df):
length = len(df)
new_df = pd.DataFrame(columns=['id','bugs'])
for row in range(length):
id_ = df['id'][row]
times = df['bugs'][row]
sub_df = pd.DataFrame({'id':[id_]*times, 'bugs':[1]*times})
new_df = pd.concat([new_df,sub_df])
return new_df
dup(df)

最新更新