Skip to main content
 首页 » 编程设计

python之从 pandas 数据框中随机删除多行,但出现异常

2025年05月04日16java哥

我正在尝试从 df 中删除 x 行 行,特定 行 除外>.

df:

                  Main             Ing  
0                  A              Apple             
1                  B              Bread             
2                  Z              Cheese             
3                  E              Egg             
4                  D              Dough            
5                  X              Pasta   
etc.  

我尝试了以下操作,目的是删除一个行:

r = randint(0, df.shape[0]) 
df.drop(df.index[r]) 

但是,它似乎没有做任何事情。

我的目标是从 df 中随机删除 x 数量的 rows,除了特定的 row,例如:

df.loc[df['Main'] == 'A']


期望的输出:

E.G:如果要删除的行数是4,行除外 - df.loc[ df['Main'] == 'A'],输出为:

                  Main             Ing  
0                  A              Apple                       
2                  Z              Cheese                                 
etc.  

请您参考如下方法:

使用pd.DataFrame.sample

df.drop(df[df.Main != 'A'].sample(4).index) 
 
  Main     Ing 
0    A   Apple 
2    Z  Cheese