为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

猛跑小猪 2023-02-15 16:43:35
我想删除任何行中没有内容的列,并删除以相同名称开头的其他列。在此示例中,应删除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()


查看完整回答
反对 回复 2023-02-15
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信