Python 删除任何行中没有内容的列,并删除相应的列

Python 删除任何行中没有内容的列,并删除相应的列,python,pandas,Python,Pandas,我想删除在任何行的中没有内容的列,并删除以相同名称开头的其他列 在本例中,应删除“业务线”>“组织”,因为所有行中只有空格。由于此列已被删除,因此以“Line of business>”开头的所有其他列也应从pandas数据框中删除。完整的数据框架遵循相同的结构[some text]>[Organization/Department/Employees] 结果: output = pd.DataFrame({'Process name': {0: 'Ad campaign', 1: 'Payro

我想删除在任何行的中没有内容的列,并删除以相同名称开头的其他列

在本例中,应删除“业务线”>“组织”,因为所有行中只有空格。由于此列已被删除,因此以“Line of business>”开头的所有其他列也应从pandas数据框中删除。完整的数据框架遵循相同的结构[some text]>[Organization/Department/Employees]

结果:

output = pd.DataFrame({'Process name': {0: 'Ad campaign', 1: 'Payroll', 2: ''}})

我希望我能正确理解这个案例,但我认为你可以试试这个:

首先,将emtpy“”值替换为NAN:

data.replace('', np.nan, inplace=True)
然后,像这样识别空列:

empty_cols = [col for col in data.columns if data[col].isnull().all()]
接下来,确定要删除的列。(假设“>”是与标识此内容相关的文本的分隔符)

最后,删除不需要的列,并从剩余的列中删除空值:

data = data.drop(delete_cols, axis=1).dropna()
谢谢
data.drop(delete_cols,axis=1)中的
dropna()
部分将擦除我的整个df,但运行
df.replace
效果很好
delete_cols= [col for col in data.columns for empty_col in empty_cols if col.split('>')[0] == empty_col.split('>')[0]]
data = data.drop(delete_cols, axis=1).dropna()