CSV-файлы имеют только один набор столбцов, указанный в начале файла. Таким образом, ваши фреймы данных также должны иметь общий набор столбцов. Если они это сделают, то CSV выглядит так, как я думаю, вы предполагаете, что он должен:
$ echo -e "a,b,c\n1,2,3" > a.csv
$ echo -e "a,b,c\n4,5,6" > b.csv
$ echo -e "a,b,c\n7,8,9" > c.csv
$ echo -e "a,b,c\n10,11,12" > d.csv
$ python3
>>> import pandas as pd
>>> df1 = pd.read_csv(r"a.csv")
>>> df1
a b c
0 1 2 3
>>> df2 = pd.read_csv(r"b.csv")
>>> df3 = pd.read_csv(r"c.csv")
>>> df4 = pd.read_csv(r"d.csv")
>>> finaldf = pd.concat([df1, df2, df3,df4])
>>> finaldf
a b c
0 1 2 3
0 4 5 6
0 7 8 9
0 10 11 12
>>> finaldf.to_csv("Compiled_Project.csv",encoding='utf-8',index=False)
>>> exit()
$ cat Compiled_Project.csv
a,b,c
1,2,3
4,5,6
7,8,9
10,11,12
Флаг index=false
, потому что вы, вероятно, не хотите метки строк (все нули) в каждом строки.
0x04 является шестнадцатеричным числом для 4 (0x является просто общей конвенцией префикса для основы 16 представлений чисел - так как многие люди думают в десятичном числе), и это было бы четвертым байтом (так как они говорят, что смещение, вероятно, считают первый байт как байт 0, таким образом, смещает 0x04, был бы 5-й байт).
я предполагаю, что они говорят, что 4-й и 5-й байт вместе был бы 28315, но они говорили, с прямым порядком байтов ли это или с обратным порядком байтов?
28315 (десятичное число) 0x6E9B в шестнадцатеричной нотации, вероятно, в файле в порядке 0x9B 0x6E, если это - прямой порядок байтов.
Примечание: и обратный порядок байтов с прямым порядком байтов относится к байтам порядка, записаны. Люди типичная десятичная запись записи и шестнадцатеричный способом с обратным порядком байтов, таким образом:
256 был бы записан как 0x0100 (цифры слева являются самым большим масштабом)
, Но это берет два байта, и системы с прямым порядком байтов запишут младший байт сначала: 0x00 0x01. Системы с обратным порядком байтов запишут высокий байт сначала: 0x01 0x00.
Обычно системы Intel являются прямым порядком байтов, и другие системы варьируются.
0x04 в шестнадцатеричном числе 4 в десятичном числе. 0x10 в шестнадцатеричном числе 16 в десятичном числе. calc.exe
может преобразовать между шестнадцатеричным числом и десятичным числом для Вас.
Смещение 4 средства 4 байта от запуска файла. Сместите 0, первый байт в файле.
Думайте о двоичном файле как о линейной матрице байтов.
0x04 был бы 5-м (в 0 основанных массивах) элемент в массиве, и 0x05 будет 6-м.
два значения в 0x04 и 0x05 могут быть OR'ed вместе для создания номера 28,315.
Начиная со значения, которое Вы читаете, 16 битов, Вам нужно к сдвигу разряда одно значение и затем ИЛИ их вместе, т.е. если бы Вы управляли файлом в c#, то Вы использовали бы что-то вроде этого:
int value = (ByteArray[4] >> 8) | ByteArray[5]);
, Надо надеяться, это помогает объяснить, как шестнадцатеричное число обращается к работе.
Это является 4-м, и 5-е XX кодируют Ваш просмотр...
1 2 3 4 5 6 01 AB 11 7B FF 5A
Так, 0x04 и 0x05 "7B" и "FF".
Принятие, что Вы говорите в Вашем случае 7BFF, должно быть равно Вашему требуемому значению.
HTH
Взгляд на байты 4 и пять у них должен быть 0x6E 0x9B значений (или 0x9B 0x6E) в зависимости от Вашего порядка байтов.
Запустите здесь . Как только Вы изучаете, как считать шестнадцатеричные значения, Вы будете в намного лучшей форме для фактического решения проблемы.