Я пытаюсь построить несколько фреймов данных из некоторых данных, содержание которых (в терминах переменных, а не значений) может потенциально измениться в каждой строке в одном и том же фрейме данных.
Способ, которым я пытаюсьсделать это сейчас - создать новый 1-рядный фрейм данных для каждой новой строки, а затем добавить его к существующему фрейму данных, используя метод append
.Это позаботится о создании новых столбцов и установит значение NaN для существующих строк.
Я также попробовал метод loc
, как предложено здесь , но это возвращает ValueError.
В дополнение к этому, у меня может быть более тысячи возможных ярлыков.Поэтому я хотел бы избежать явного объявления всех столбцов в начале, и почти невозможно узнать, какие столбцы понадобятся для конкретного файла, не прочитав весь файл хотя бы один раз.
Однако я знаю, что построчное построение блока данных считается плохой (если не устаревшей) практикой.
Итак, допустим, мои данные взяты из текстового файла, похожего на этот:
A=10,B=2
A=20,B=3
A=30,C=Batman
и я хочу создать фрейм данных, который выглядит как
a b c
0 10 2.0 NaN
0 20 3.0 NaN
0 30 NaN Batman
Как бы вы предложили это сделать?
РЕДАКТИРОВАТЬ: данные поступают из очень грязного исправленоширина текста.Каждая строка текстового файла представляет собой непрерывную последовательность символов (без разделителя).Внутри строки есть 3 буквенных идентификатора, обозначающих начало раздела, за которыми следуют все значения этого раздела.У меня есть документ, который я перевел на язык python, в котором для каждого идентификатора указывается, сколько символов мне нужно прочитать после начала раздела и как они разделены.
Например.Одна строка может быть
AAA1234BBB789aa78CCC123456
Я бы тогда знал, что секция AAA
имеет 3 значения, одно из которых состоит из двух цифр int, а два - из одной цифры int.За этим разделом BBB
следует 3-значный int, 2-символьная строка и 2 однозначные.
У меня есть фрагмент кода, который переводит это в dict, который выглядит как
{'AAA_1': 12, 'AAA_2':3, 'AAA_3':4, 'BBB_1':789, 'BBB_2':aa,'BBB_3':7, 'BBB_4':8, ......}
EDIT2: Если вы хотите увидеть оригинальный файл, вы можете посмотреть здесь (любой из них будет работать):
ftp: //ftp.ncdc.noaa.gov/ pub / data / noaa / 2017 /
А чтобы понять, как это читать, посмотрите здесь (не хочу вас так сильно просить):
ftp://ftp.ncdc.noaa.gov/pub/data/noaa/ish-format-document.pdf