Я хочу создать сводный файл из нескольких десятков оригинальных файлов, из которых я только извлекаю последнюю строку (df.tail (1)) из каждого исходного файла с 1000 с столбцами, которые могут быть Int, Float, STR, Bool. При использовании PD.Concat на этих DFS создается NAN для всех столбцов, которые не существуют во всех файлах, что приводит к изменению данных данных для INTS.
df1 = pd.DataFrame([(2, 3, True, "Test")], columns=["x", "y", "z", "a"])
df2 = pd.DataFrame([(4, 6)], columns=["x", "b"])
df3 = pd.concat([df1, df2], ignore_index = True)
< /code>
-> df3: < /p>
, получивший DF3 < /p>
Но сохранение данных необходимо для дальнейшей обработки файлов (INT должны оставаться в INT)! < /p>
Я попытался добавить информацию о последующих DFS с использованием DICTS < /p> .df3 = df1.copy(deep=True)
res_dict = {"x": 4, "y": 6}
df3.loc[len(df3.index)] = res_dict
< /code>
Но это также не сохраняет DataType.for loop_no, key in enumerate(res_dict.keys()):
if loop_no == 0:
row_no = len(df3)
df3.loc[row_no] = [""] * len(df3.columns)
if key in df3.columns:
df3.loc[row_no, key] = res_dict[key]
else:
df3[key] = ""
df3.loc[row_no, key] = res_dict[key]
Но это действительно утомительно, и с количеством данных, которые я должен собирать не совсем эффективно.
Я хочу создать сводный файл из нескольких десятков оригинальных файлов, из которых я только извлекаю последнюю строку (df.tail (1)) из каждого исходного файла с 1000 с столбцами, которые могут быть Int, Float, STR, Bool. [b] При использовании PD.Concat на этих DFS создается NAN для всех столбцов, которые не существуют во всех файлах, что приводит к изменению данных данных для INTS. [/b] [code]df1 = pd.DataFrame([(2, 3, True, "Test")], columns=["x", "y", "z", "a"]) df2 = pd.DataFrame([(4, 6)], columns=["x", "b"])
df3 = pd.concat([df1, df2], ignore_index = True) < /code> -> df3: < /p> , получивший DF3 < /p> Но сохранение данных необходимо для дальнейшей обработки файлов (INT должны оставаться в INT)! < /p> Я попытался добавить информацию о последующих DFS с использованием DICTS < /p> .df3 = df1.copy(deep=True)
res_dict = {"x": 4, "y": 6} df3.loc[len(df3.index)] = res_dict < /code> Но это также не сохраняет DataType.for loop_no, key in enumerate(res_dict.keys()): if loop_no == 0: row_no = len(df3) df3.loc[row_no] = [""] * len(df3.columns)
if key in df3.columns: df3.loc[row_no, key] = res_dict[key] else: df3[key] = "" df3.loc[row_no, key] = res_dict[key] [/code] Но это действительно утомительно, и с количеством данных, которые я должен собирать не совсем эффективно.
Я хочу создать сводный файл из нескольких десятков оригинальных файлов, из которых я только извлекаю последнюю строку (df.tail (1)) из каждого исходного файла с 1000 с столбцами, которые могут быть Int, Float, STR, Bool. При использовании PD.Concat...