python - 迭代数据框列表并删除特定行
问题描述
我有一个数据框列表:
list = [a, b, c, d, e ,f]
这些数据帧中的每一个都有一个名为“PEOPLE”的列,我想遍历这个列表并删除任何数据帧中的任何行,其中“PEOPLE”中的值是另一个列表中的值之一:
people_to_drop = ['PERSON ABC','PERSON DEF']
我一直在尝试以下方法:
for index,item in enumerate(list):
list[index] = item[~item['PEOPLE'].isin(people_to_drop)].copy()
但是,当我在 for 循环运行后检查数据集时,它们似乎没有删除我想要删除的行。有一个更好的方法吗?提前致谢!
解决方案
您可以尝试如下列表理解
df_list = [a, b, c, d, e ,f]
new_df_list = [a_df[~a_df['PEOPLE'].isin(people_to_drop)].copy() for a_df in df_list]
之后,打印出每个数据框new_df_list
以检查
print(new_df_list[0])
print(new_df_list[1])
推荐阅读
- flutter - flutter pub run build_runner build 时出错
- javascript - React - 向下传递状态
- javascript - 警告:validateDOMNesting(...): 不能作为子级出现在 React.js 中
- c++ - 安装 k-medoids 库 - 找不到 mpi.h
- spring-boot - UnsatisfiedDependencyException:创建名为“employeeController”的bean时出错:通过字段“repository”表达的不满足依赖关系
- flutter - 我可以用什么包装 ListView。建设者在?
- bitbucket-pipelines - atlassian/scp-deploy 在 bitbucket 部署管道上从 SCP 中排除文件夹的问题
- r - R 包 dplyr 中的主要功能对我不起作用
- docker - nginx 服务器未启动它会抛出错误 bind() to 0.0.0.0:80 failed (13: Permission denied)
- python - 有效值