Я пишу функцию для облегчения слияния DataFrame между двумя таблицами. Функция создает ключ сопоставления в первом DataFrame, используя переменные во втором DataFrame.
Моя проблема возникает, когда я пытаюсь включить .fillna (method =) в конец функции.
# Import libraries
import pandas as pd
# Create data
data_1 = {"col_1": [1, 2, 3, 4, 5], "col_2": [1, , 3, , 5]}
data_2 = {"col_1": [1, 2, 3, 4, 5], "col_3": [1, , 3, , 5]}
df = pd.DataFrame(data_1)
df2 = pd.DataFrame(data_2)
def merge_on_key(df, df2, join_how="left", fill_na=None):
# Import libraries
import pandas as pd
# Code to create mapping key not required for question
# Merge the two dataframes
print(fill_na)
print(type(fill_na))
df3 = pd.merge(df, df1, how=join_how, on="col_1").fillna(method=fill_na)
return df3
df3 = merge_on_key(df, df2)
output:
>>> None
>>> <class 'NoneType'>
error message:
ValueError: Must specify a fill 'value' or 'method'
Мой вопрос: почему fill_na, равное None, не позволяет fillna (method = None, значение по умолчанию для fillna (method))?