Без лучшей выборки ваших данных я не могу быть уверен, но, возможно, это поможет:
Сначала вы читаете свои данные, сохраняя dtype, а затем в основном читаете их снова, чтобы получить правильные id
. Если ваши логические столбцы также пропускают значения (пустые строки), вам нужно будет привести эти строки к df.astype("bool")
.
df1 = pd.read_csv("test.csv", keep_default_na=True).dropna()
df2 = pd.read_csv("test.csv", keep_default_na=False)
df1["id"] = df2.loc[df1.index]["id"]
df = pd.DataFrame(df1.to_dict())
, если вы не хотите читать его дваждыВы можете прочитать его с помощью keep_default_na=False
, затем отфильтровать строки с пустыми строками и привести каждый столбец к желаемому dtype или df = pd.DataFrame(df1.to_dict())
.