我想刪除任何行中沒有內(nèi)容的列,并刪除以相同名稱開頭的其他列。在此示例中,應(yīng)刪除Line of Business > Organization,因?yàn)樗行兄兄挥锌瞻?。由于此列已刪除,所有其他以“業(yè)務(wù)線 >”開頭的列也應(yīng)從 pandas 數(shù)據(jù)框中刪除。完整的數(shù)據(jù)框遵循[some text] > [Organization/Department/Employees]相同的結(jié)構(gòu)。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:''}})結(jié)果:output = pd.DataFrame({'Process name': {0: 'Ad campaign', 1: 'Payroll', 2: ''}})
1 回答

MMTTMM
TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
我希望我能正確理解這個(gè)案例,但我想你可以試試這個(gè):
首先,用 NaN 替換空的“”值:
data.replace('', np.nan, inplace=True)
然后,像這樣識(shí)別空列:
empty_cols = [col for col in data.columns if data[col].isnull().all()]
接下來,確定要?jiǎng)h除的列。(這假定“>”是與識(shí)別此相關(guān)的文本的分隔符)。
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()
添加回答
舉報(bào)
0/150
提交
取消