在条件熊猫下插入完整的重复行

埃科

基本上,如果值大于或等于2,我想考虑第三列(df1 [3])。我想重复,即将整行插入新行,而不是替换。

这是数据帧:

    1           2       3    
   
0   5614    banana      1   
1   4564    kiwi        1   
2   3314    salsa       2   
3   3144    avocado     1   
4   1214    mix         3   
5   4314    juice       1   

所需的输出:

    1           2       3       
1   5614    banana      1   
2   4564    kiwi        1   
3   3314    salsa       2   
4   3314    salsa       2  
5   3144    avocado     1   
6   1214    mix         3   
7   1214    mix         3 
8   1214    mix         3 
7   4314    juice       1   

DataFrame的代码并尝试解决它:

l = [5614,4564,3314,3144,1214,4314]
i = ['banana','kiwi' ,'salsa','avocado','mix','juice']
n = [1,1,2,1,3,1]
df1 = pd.DataFrame(columns = (1,2,3))
df1[1] = l
df1[2] = i
df1[3] = n

    for indx,row in df.iterrows():
        if row[3].isdigit() == True and int(row[3]) >= 2:
            df1.loc[indx] = [row * int(row[3])]

显然,上述方法不会用每一列中具有相同值的新行来代替它。

Append()也不会解决它,因为我必须保留数据帧的完全相同的顺序。

关于熊猫数据框,列表中是否有类似于插入/扩展/添加或切片方法的内容?

广晃

尝试repeat

count = pd.to_numeric(df['3'], errors='coerce').fillna(0).astype(int)

# replace '3' with actual column name
df.loc[df.index.repeat(count)]

输出:

      1        2  3
0  5614   banana  1
1  4564     kiwi  1
2  3314    salsa  2
2  3314    salsa  2
3  3144  avocado  1
4  1214      mix  3
4  1214      mix  3
4  1214      mix  3
5  4314    juice  1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章