如果整列有纳米或空白值,我正在删除数据框列。删除nan工作正常并且分配数据[data ==''] = np.nan不能在for循环下工作。
repos$: Observable<Repo[]>;
this.repos$ = this.candidateService.getCandidateList()
.switchMap((list: Repo[]) => {
let requests = list.map((i) => {
return this.secondRequest(i)
})
return Observalbe.forkJoin(requests).map((dataList)=>{
return dataList.map((data, index) => {
return {
...list[index],
collaborator: data
}
})
})
})
getCandidateList(){
this.http.get<Repo[]>('https://api.github.com/user/repos', {headers});
}
我根据以下评论更新了代码,但同样的问题。
for i in range(1, j):
data = pd.DataFrame(dfs[i])
data = data.dropna(axis=1, how='all') # Remove column if column has only nan values
data[data == ''] = np.nan
data = data.dropna(axis=1, how='all') # Remove column if column has only blank values
答案 0 :(得分:5)
使用,replace
:
data = data.replace('', np.nan).dropna(axis=1, how='all')
答案 1 :(得分:2)
选项1
您也可以使用mask
data.mask(data.astype(object).eq('')).dropna(axis=1, how='all')
但是,因为bool('')
评估为False
,如果数据框中没有其他内容,您也可以
data.mask(data.astype(bool)).dropna(axis=1, how='all')
选项2
另一种方式是
data[data.mask(df.astype(object).eq('')).notnull().any()]