python dataframe删除重复行_python – 从Pandas dataFrame中删除重复项,条件是保留原始数据...

假设我有以下DataFrame:

A | B

1 | Ms

1 | PhD

2 | Ms

2 | Bs

我想删除关于A列的重复行,并且我想保留B列中值为’PhD’的行作为原始行,如果我没有找到’PhD’,我想保留行B栏中的“B”.

我正在尝试使用

df.drop_duplicates('A')

有条件的

解决方法:

>>> df

A B

0 1 Ms

1 1 Ms

2 1 Ms

3 1 Ms

4 1 PhD

5 2 Ms

6 2 Ms

7 2 Bs

8 2 PhD

使用自定义函数对数据框进行排序:

def sort_df(df, column_idx, key):

'''Takes a dataframe, a column index and a custom function for sorting,

returns a dataframe sorted by that column using that function'''

col = df.ix[:,column_idx]

df = df.ix[[i[1] for i in sorted(zip(col,range(len(col))), key=key)]]

return df

我们的排序功能:

cmp = lambda x:2如果’PhD’在x中则为1,如果’Bs’在x中则为0

在行动:

sort_df(df,’B’,cmp).drop_duplicates(‘A’,take_last = True)

A B

4 1 PhD

8 2 PhD

标签:python,dataframe,pandas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值