Невозможно добавить значения в каждый столбец в CSV, используя pandas - PullRequest
2 голосов
/ 25 мая 2020

У меня есть csv с содержимым ниже

AB22e,AD34f,GQ22c,BQ77b,GQ00p

Здесь он содержит только заголовки. Теперь для каждого столбца я хочу добавить значение

Итак, у меня есть словарь, в котором я сохранил соответствие между именами столбцов и значениями, которые нужно добавить. Это выглядит так:

col_map = {"AB22e": ["a", "v"], "AD34f": ["c", "w"], "GQ22c": ["p", "l"], "BQ77b": ["a", "d"], "GQ00p": ["oo", "c"]}

Вот как я добавляю значения в столбцы и выгружаю их обратно в csv

import pandas as pd

columns = col_map.keys()
df2 = pd.read_csv('test.csv')

for column in columns:
    df2[column] = str(col_map[column]).encode('utf-8')

df2.to_csv('test.csv', index=False)

Но к csv ничего не добавляется. Мой окончательный результат должен выглядеть так:

AB22e,AD34f,GQ22c,BQ77b,GQ00p
["a", "v"],["c", "w"],["p", "l"],["a", "d"],["oo", "c"]

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 25 мая 2020

Вы можете использовать:

df.append(col_map, ignore_index=True).to_csv('test.csv', index=False)

Результат:

   AB22e   AD34f   GQ22c   BQ77b    GQ00p
0  [a, v]  [c, w]  [p, l]  [a, d]  [oo, c]
2 голосов
/ 25 мая 2020

вы можете создать фрейм данных из доступного словаря и переиндексировать

pd.DataFrame({k:[v] for k,v in col_map.items()}).reindex(df2.columns,axis=1)

    AB22e   AD34f   GQ22c   BQ77b    GQ00p
0  [a, v]  [c, w]  [p, l]  [a, d]  [oo, c]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...