Запись списков в существующий CSV-файл с использованием панд - PullRequest
1 голос
/ 29 сентября 2019

Я хочу добавить значения из списка pair1 в новый столбец с соответствующим именем.

pair1 = [['ab','bc','cd'],['cd','de','ef'],['sa','hg','gh','de']]

Я использую pandas, чтобы добавить новый столбец вCSV-файл, но вставка целого списка в одну ячейку вызывает ошибку.Если я использую zip (pr1), он вставляет позицию индекса файла zip.

csv_source_1 = pd.read_csv('D:\\Python 
Automation\\Rough\\Source_1.csv',error_bad_lines=False)
pair1 = [['ab','bc','cd'],['cd','de','ef'],['sa','hg','gh','de']]
for pr1 in pair1:
        csv_source_1['pair1'] = pr1
csv_source_1.to_csv('D:\\Python Automation\\Rough\\Source_1.csv')

I am looking for below as output:

eid ename     pairs
1   james    'ab','bc','cd'
2   thomas   'cd','de','ef'

Я получаю ошибку:

ValueError: Length of values does not match length of index

1 Ответ

0 голосов
/ 29 сентября 2019

Замените цикл for на ниже

pair1 = [['ab','bc','cd'],['cd','de','ef'],['sa','hg','gh','de']]

csv_source_1['pair1'] = pd.Series(pair1)
csv_source_1['pair1'] = csv_source_1['pair1'].map(lambda x: ",".join(x))

csv_source_1.to_csv('D:\\Python Automation\\Rough\\Source_1.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...