列表具有某些csv的许多路径。
如何检查每个循环中的每个csv
是否有空列,如果有,请删除它们。
代码:
for i in list1:
if (list1.columns = '').any():
i.remove that column
希望这解释了我在说什么。
答案 0 :(得分:3)
示例:
List<T>
已删除第一列,因为列名称为空-这意味着使用loc
和boolean indexing
仅过滤没有空值的列:
df = pd.DataFrame({
'':list('abcdef'),
'B':[4,5,4,5,5,np.nan],
'C':[''] * 6,
'D':[np.nan] * 6,
'E':[5,3,6,9,2,4],
'F':list('aaabb') + ['']
})
print (df)
B C D E F
0 a 4.0 NaN 5 a
1 b 5.0 NaN 3 a
2 c 4.0 NaN 6 a
3 d 5.0 NaN 9 b
4 e 5.0 NaN 2 b
5 f NaN NaN 4
显示列df1 = df.loc[:, df.columns != '']
print (df1)
B C D E F
0 4.0 NaN 5 a
1 5.0 NaN 3 a
2 4.0 NaN 6 a
3 5.0 NaN 9 b
4 5.0 NaN 2 b
5 NaN NaN 4
,因为仅填充了空值-比较所有值(如果不是空值),并通过DataFrame.any
每列至少获得一个True,也可以通过boolean indexing
进行过滤1}}:
C
已删除列loc
,因为仅用函数dropna
填充了缺少的值:
df2 = df.loc[:, (df != '').any()]
print (df2)
B D E
0 a 4.0 NaN 5
1 b 5.0 NaN 3
2 c 4.0 NaN 6
3 d 5.0 NaN 9
4 e 5.0 NaN 2
5 f NaN NaN 4
print ((df != ''))
B C D E F
0 True True False True True True
1 True True False True True True
2 True True False True True True
3 True True False True True True
4 True True False True True True
5 True True False True True False
print ((df != '').any())
True
B True
C False
D True
E True
F True
dtype: bool