正确答案是:A: `df.dropna(axis=1, thresh=df.shape[0]*0.2)`
分析:
1. **目标**:我们希望删除缺失率达到80%以上的字段。也就是说,保留缺失率小于等于20%的字段。换句话说,一个字段至少要有20%的非缺失值才能被保留。
2. **参数解释**:
- `axis=1`:表示对列进行操作。
- `thresh`:指定非缺失值的最小数量。对于一个字段(列)来说,如果非缺失值的数量小于这个阈值,那么该列将被删除。
3. **计算阈值**:
- `df.shape[0]`:表示DataFrame的行数。
- `df.shape[0] * 0.2`:表示每列至少要有20%的非缺失值。换句话说,允许最多80%的缺失值。
因此,选项A中`thresh=df.shape[0]*0.2`确保了每列至少有20%的非缺失值,符合题目要求删除缺失率达到80%以上的字段。