Python Dataframe Merge: проблема с заглавными буквами - PullRequest
0 голосов
/ 25 октября 2018

Когда я пытаюсь объединить два набора разностных данных на основе значений столбца, я замечаю, что значения столбцов на двух листах будут совпадать правильно, если заглавные буквы совпадают.Однако Python не сможет определить соответствующее значение для df1 из df2, если заглавная буква отличается, даже если строка одинакова.

Есть ли способ сделать это без изменения содержимого наборов данных?

merged_df = pd.merge(df1, df2, on=['column1'], how = 'left')
merged_df.drop_duplicates(keep='first', inplace=True)
merged_df.to_csv('report.csv', index=False)

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Простой для понимания подход,

df1['column1']=df1['column1'].str.lower()
df2['column2']=df2['column2'].str.lower()

Затем продолжите работу с кодом.

0 голосов
/ 25 октября 2018

Нормализуйте свои строки до вашего слияния через pd.Series.str.lower.Если по какой-то причине вы не хотите менять свои исходные кадры данных, вы можете использовать pd.DataFrame.assign:

merged_df = pd.merge(df1.assign(column1=df1['column1'].str.lower()),
                     df2.assign(column1=df2['column1'].str.lower()),
                     on='column1', how='left')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...