拥有 pandas 数据框,如何有效删除属性类中具有特定值(例如“低”)的一小部分行?这是我的代码:
import pandas as pd
import numpy as np
np.random.seed(3)
df = pd.DataFrame({"a":[1,2,3,4], "b":[5,6,7,8], "class":['High','Low','Low','Low']})
drop_indices = np.random.choice(df.index, int(np.ceil(0.5*df.shape[0])) , replace=True)
df_subset = df.drop(drop_indices)
print df
print df_subset
Run Code Online (Sandbox Code Playgroud)
输出:
a b class
0 1 5 High
1 2 6 Low
2 3 7 Low
3 4 8 Low
a b class
1 2 6 Low
3 4 8 Low
Run Code Online (Sandbox Code Playgroud)
这从所有类别中删除,我希望它仅从低类别中删除。
筛选出您要删除的行,使用sample选择要删除的成员比例,然后使用drop删除它们:
df = df.drop(df[df['class'] == 'Low'].sample(frac=0.33).index)
Run Code Online (Sandbox Code Playgroud)
结果输出:
a b class
0 1 5 High
2 3 7 Low
3 4 8 Low
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2928 次 |
| 最近记录: |