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