我正在构建一个Python脚本来执行以下操作:
列出目录
将单个CSV文件读取到DataFrame - > “数据”(第2行(参数名称)和第3行(参数单位)定义为标题)。
如果列“TMOD1”,“TMOD2”,“TMOD3”和“TMOD4”中的值为0(如果一个不为0,整行必须去),则只保留行
使用单位“bit”删除所有列( - >参数)
删除超过所有行的行10“NaN”值
将过滤后的DataFrame“data”附加到DataFrame“result”
对所有CSV文件迭代步骤2-7
将生成的DataFrame“result”保存为新的CSV文件
我坚持如何实施第3步和第4步,其他一切正常。
我在第3步尝试了以下内容:
data = data[(data.TMOD1 == 0) & (data.TMOD2 == 0) & (data.TMOD3 == 0) & (data.TMOD4 == 0)]
以下是第4步:
data.drop(labels='bit', axis=1, level=1, inplace=True)
当退出第3步并使用多标题行DataFrame时,第4步可以正常工作。
但是,步骤3仅在切换到单个标题行DataFrame时有效 - 在这种情况下,步骤4显然不起作用。
我想我搞砸了正确的标题级别。
答案 0 :(得分:0)
data = data[(data['TMOD1']['bit'] == 0) & (data['TMOD2']['bit'] == 0) & (data['TMOD3']['bit'] == 0) & (data['TMOD4']['bit'] == 0)]
似乎工作。我昨天尝试的时候不知道为什么没有。
是否有可能将第二个标签(“位”)留空?原始数据中的标签有时会有所不同(例如“位”,“位”或“无单位”)。