忽略大小写删除重复记录

Dat*_*e99 5 python pandas

我有一个包含多列的数据框,其中之一是 company_name。我正在尝试根据它们具有相同的 company_name 来删除重复的记录,但是我不知道如何在保持 company_name 的原始大小写的同时执行此操作。

我尝试将所有名称转换为小写,然后删除重复项,但如前所述,我想保留原始大小写。

df = pd.DataFrame({'company_name': ['Apple', 'apple', 'BlackBerry', 'blackberry','Blackberry'])
df['company_name'] = df['company_name'].str.strip()
df['company_name'] = df['company_name'].str.lower()
input_records.drop_duplicates(subset=['company_id'], inplace=True, 
   keep="first")
Run Code Online (Sandbox Code Playgroud)

此代码消除了重复项,但以全部小写形式存储公司名称。

想要的结果

company_name
Apple
BlackBerry
Run Code Online (Sandbox Code Playgroud)

实际结果

company_name
apple
blackberry
Run Code Online (Sandbox Code Playgroud)

vle*_*tre 6

您可以创建一个新列来进行操作。这将使您保持公司名称栏不变。

它可能是这样的:

df = pd.DataFrame({'company_name':['Apple','apple','Blackberry','blackberry']})

company_name
0        Apple
1        apple
2   Blackberry
3   blackberry

df['company_name_2'] = df['company_name'].str.strip()
df['company_name_2'] = df['company_name_2'].str.lower()
df.drop_duplicates(subset=['company_name_2'], inplace=True, 
   keep="first")
df.drop(columns = 'company_name_2', inplace = True)
df.reset_index(inplace = True, drop = True)
Run Code Online (Sandbox Code Playgroud)

出去 :

    company_name
0   Apple
1   Blackberry
Run Code Online (Sandbox Code Playgroud)