在Python中如何删除基于部分字符串的重复行

2024-10-01 15:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个数据帧,其中01和02、03和04、05和06是同一个cites:

id    city
01    New York City
02    New York
03    Tokyo City
04    Tokyo
05    Shanghai City
06    Shanghai
07    Beijing City
08    Paris
09    Berlin

如何删除重复的cites并获得以下数据帧?谢谢。在

^{pr2}$

Tags: 数据idcitynewparisyorkberlintokyo
2条回答

使用drop\u duplicates和keep参数,这在pandas中更容易实现。在

# dataset
df = pd.DataFrame({'id':[1,2,3,4],'city':['New York City','New York','Tokyo City','Tokyo']})
# replace values
df.city = df.city.str.replace('City','').str.strip()
# drop duplicate (answer of original question)
df.drop_duplicates(subset=['city'])

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duplicates.html

用空字符串替换City部分,并通过保留第一行来应用group

df=pd.DataFrame({'id':[1,2,3,4],'city':['New York City','New York','Tokyo City','Tokyo']})

df看起来像这样

^{pr2}$

应用replace和group by以获取每个组中的第一行

df.city=df.city.str.replace('City','').str.strip()
df.groupby('city').first().sort_values('id')

输出:

city       id
New York    1
Tokyo       3

或者在列的子集上使用drop\u duplicates。谢谢@JR ibkr

df.drop_duplicates(subset='city')

相关问题 更多 >

    热门问题