2015-08-25 5 views
1

у меня есть панд dataframe с колонкой, содержащей строку следующим образом:списка Преобразовать из dicts для панд колонн

"Hex:6; HexNAc:3; NeuNAc:1}" 
"Fuc:1; Hex:7; HexNAc:2}" 

я написал следующую функцию, чтобы преобразовать этот текст в словари с ключевыми парами значений следующим образом:

def create_monosacch_columns(glycan_ident): 
glycans = glycan_ident.split("}")[0].split("; ") 
monosaccharides = [] 
for entry in glycans: 
    key, val = entry.split(":") 
    monosacc = {key:val} 
    monosaccharides.append(monosacc) 
    return monosaccharides 

выход:

[{'Hex': '6'}, {'HexNAc': '3'}, {'NeuNAc': '1'}] 
[{'Fuc': '1'}, {'Hex': '7'}, {'HexNAc': '2'}] 

Как преобразовать эти списки dicts в в столбцы dataframe pandas с отображением значений в исходные строки?

ответ

0

Не совсем уверен, что вы хотите, чтобы конечный результат выглядел, но если вы не возражаете против того, чтобы использовать NA, вы можете попробовать добавить свой список словарей в качестве фрейма данных к исходному файловому кадру. Там будет NAns, но это может быть удалено при анализе.

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('HexNAc',"NeuNAc")) 

Где dataframe выглядит следующим образом:

HexNAc NeuNAc 
    1  2 
    3  4 

Если посмотреть на примере список словарей,

temp= [{'Hex': '6'}, {'HexNAc': '3'}] 

Вы можете затем преобразовать этот список dataframe своих собственных , и добавьте его к файлу данных, который у вас уже есть.

df2 = pd.DataFrame(temp) 
df = df.append(df2) 

Окончательный список будет выглядеть следующим образом:

HexNAc NeuNAc 
    1  2 
    3  4 
    3  NaN 
    NaN 1 
+0

Я не пытаюсь создать dataframe, а отображать значения в списке словарей, как новые столбцы для конкретных строк, где они считываются из , – kkhatri99

+0

Пожалуйста, посмотрите на редактирование, чтобы узнать, соответствует ли этот результат выходу. Если нет, можете ли вы отправить пример окончательного вывода? – microheather

Смежные вопросы