我想删除任何行中没有内容的列,并删除以相同名称开头的其他列。在此示例中,应删除Line of Business > Organization,因为所有行中只有空白。由于此列已删除,所有其他以“业务线 >”开头的列也应从 pandas 数据框中删除。完整的数据框遵循[some text] > [Organization/Department/Employees]相同的结构。data = pd.DataFrame({'Process name': {0: 'Ad campaign', 1: 'Payroll', 2: ''}, 'Line of business > Organization': {0: "", 1: "", 2:''}, 'Line of business > Department': {0: "Social media", 1: "People", 2:''}, 'Line of business > Employees': {0: "Linda, Tom", 1: "Manuel, Olaf", 2:''}})结果:output = pd.DataFrame({'Process name': {0: 'Ad campaign', 1: 'Payroll', 2: ''}})
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
我希望我能正确理解这个案例,但我想你可以试试这个:
首先,用 NaN 替换空的“”值:
data.replace('', np.nan, inplace=True)
然后,像这样识别空列:
empty_cols = [col for col in data.columns if data[col].isnull().all()]
接下来,确定要删除的列。(这假定“>”是与识别此相关的文本的分隔符)。
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()
添加回答
举报
0/150
提交
取消