У меня есть два кадра данных с двумя перекрывающимися столбцами: NumberID и Amount. Мой NumberID не является уникальным для простого левого соединения только для этого столбца, но в сочетании с Amount это так. Я хочу иметь возможность слить df2 на df1, когда значения в этих двух столбцах равны, и если нет, передать / заполнить NaN. Я написал следующий код:
pd.merge(df1, df2, how='left', left_on=['Number', 'Amount'])
но это выдает эту ошибку: object of type 'NoneType' has no len()
Я подтвердил, что ни в одном из двух столбцов в обоих кадрах данных нет нулевых значений. У меня, однако, есть нулевые значения, разбросанные в каждом df (но в разных столбцах). Есть ли способ игнорировать значения NoneType? Или есть лучший способ выполнить то, что я хочу? Я подумал также о том, чтобы сделать оператор if внутри df.iterrows, что-то вроде:
for rows, index in df1.iterrows:
if df1[['Number', 'Amount'] = df2[['Number', 'Amount']]
then rows(pd.concat([df1, df2], axis=1)
else pass
Но мой синтаксис не совсем правильный. Любая помощь?