簡體   English   中英

Map 兩個數據幀不區分大小寫(Python pandas)

[英]Map two dataframes in a case insensitive way (Python pandas)

我有兩個不同長度的 dataframe。

db
index| Size   | GROUP FORMAT
1    | AA     | Unknown
2    | BB     | Unknown
3    | CC     | Unknown

db2
index| GROUP FORMAT| FORMAT
1    | G1          | Aa
2    | G2          | bB

db2 的 FORMAT 列和 db 的 Size 的字母相同,但大小寫可能不同。 我想 map 他們以獲得:

db
index| Size   | GROUP FORMAT
1    | AA     | G1
2    | BB     | G2
3    | CC     | Unknown

但是,如果可能的話,我寧願不復制和刪除任何列。 是否可以以不區分大小寫的方式對兩個數據幀進行 map?

嘗試全部轉換為大寫,然后合並:

df1['GROUP FORMAT' ] = (df1.merge(df2.assign(FORMAT=df2.FORMAT.str.upper()), 
                                 left_on='Size', right_on='FORMAT', how='left')
                           ['GROUP FORMAT_y']
                           .fillna(df1['GROUP FORMAT'])
                       )

Output:

   index Size GROUP FORMAT
0      1   AA           G1
1      2   BB           G2
2      3   CC      Unknown

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM