如何使用python pandas删除每行中的某些单元格?
发布时间:2020-12-20 11:06:50 所属栏目:Python 来源:网络整理
导读:我有一个这样的数据帧,每行代表一个人做的一些旅行: IndividualID Ifmarried Sex Trip1 Trip2 Trip3 Trip4 Trip5 Trip6 Trip7 Trip8 Trip9200100001 1 2 23 1 2 4 4 4 1 5 5200100002 1 1 21 2 12 3 1 55 7 7200100003 2 1 12 3 1 6 3 200100004 1 2 1 2001
我有一个这样的数据帧,每行代表一个人做的一些旅行:
IndividualID Ifmarried Sex Trip1 Trip2 Trip3 Trip4 Trip5 Trip6 Trip7 Trip8 Trip9 200100001 1 2 23 1 2 4 4 4 1 5 5 200100002 1 1 21 2 12 3 1 55 7 7 200100003 2 1 12 3 1 6 3 200100004 1 2 1 200100005 1 2 6 5 1 9 3 5 6 200100006 1 2 23 4 4 1 4 3 6 5 我想做的是: IndividualID Ifmarried Sex Trip1 Trip2 Trip3 Trip4 Trip5 Trip6 Trip7 Trip8 Trip9 200100001 1 2 23 1 200100002 1 1 21 2 12 3 1 200100003 2 1 12 3 1 200100004 1 2 1 200100005 1 2 6 5 1 200100006 1 2 23 4 4 1 请注意,在’Ifmarried’和’Sex’栏中也可能有’1′,所以我必须确保它们不会与旅行混淆. 提前致谢! 解决方法
使用双cumsum技巧:
v = df.filter(like='Trip') df.iloc[:,3:] = v[v.eq(1).cumsum(1).cumsum(1).le(1)].fillna('') df IndividualID Ifmarried Sex Trip1 Trip2 Trip3 Trip4 Trip5 Trip6 Trip7 0 200100001 1 2 23 1 1 200100002 1 1 21 2 12 3 1 2 200100003 2 1 12 3 1 3 200100004 1 2 1 4 200100005 1 2 6 5 1 5 200100006 1 2 23 4 4 1 Trip8 Trip9 0 1 2 3 4 5 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |