首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按列值筛选多头DataFrame中的行

按列值筛选多头DataFrame中的行
EN

Stack Overflow用户
提问于 2018-05-30 14:39:27
回答 1查看 892关注 0票数 0

我正在构建一个Python脚本来执行以下操作:

  1. 目录中列出CSV
  2. 将单个CSV文件读取到DataFrame -> "data“(第2行(参数名称)和第3行(参数单元)定义为标头)。
  3. 只有当"TMOD1“、"TMOD2”、"TMOD3“和"TMOD4”列中的值为0时才保留行(如果不是0,则整行必须换行)
  4. 使用单位“位”删除所有列(->参数)
  5. 删除所有大于10 "NaN“值的行
  6. 将过滤后的DataFrame“数据”附加到DataFrame“结果”
  7. 对所有CSV文件迭代步骤2-7。
  8. 将生成的DataFrame“结果”保存为新的CSV文件

我被困在如何实现步骤3和步骤4上,其他的一切都很好。

在第三步中,我尝试了以下几点:

代码语言:javascript
复制
data = data[(data.TMOD1 == 0) & (data.TMOD2 == 0) & (data.TMOD3 == 0) & (data.TMOD4 == 0)]

以下是第4步:

代码语言:javascript
复制
data.drop(labels='bit', axis=1, level=1, inplace=True)

当省略步骤3并使用多头行DataFrame时,步骤4完美地工作。

但是,步骤3只在切换到单个标题行DataFrame时才有效--在这种情况下,步骤4显然无法工作。

我想我搞砸了调用正确的标题级别。

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 16:14:13

代码语言:javascript
复制
data = data[(data['TMOD1']['bit'] == 0) & (data['TMOD2']['bit'] == 0) & (data['TMOD3']['bit'] == 0) & (data['TMOD4']['bit'] == 0)]

似乎很管用。我昨天试的时候不知道为什么没有。

是否有可能将第二个标签(“位”)保留为空白?标签有时会在原始数据中不同(例如“位”、“位”或“单位”)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50607466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档