Python: повторение двух списков, чтобы объединить строку из столбца 1 со столбцом 2 - PullRequest
0 голосов
/ 14 мая 2018

Итак, я импортирую этот файл xlsx в Python, который содержит два столбца. Я хочу объединить каждый столбец, чтобы сделать единую строку. Таким образом, выходные данные должны быть столбцом, в котором строки из столбца 1 объединены со строками из столбца 2. Количество строк останется неизменным. Ниже мой код, ничего странного, как вы можете видеть, я думал о создании цикла for, есть идеи? Большое спасибо!

import xlrd
file_location = "C:/Users/Desktop/manual.xlsx"
workbook = xlrd.open_workbook(file_location)

Ответы [ 4 ]

0 голосов
/ 14 мая 2018

Если xlsx действительно содержит только 2 столбца, то почему бы просто не прочитать весь файл как необработанный текст, а затем разделить на новую строку вместо использования xlrd для загрузки книги? В файле уже есть «объединенные» столбцы, если вы так думаете об этом ...

Может быть простым:

rows = open("filename").read().splitlines()
0 голосов
/ 14 мая 2018

Это легко сделать с pandas. Следующее должно работать (не проверено, потому что у меня нет ваших данных).

import xlrd
import pandas as pd
file_location = "C:/Users/Desktop/manual.xlsx"
workbook = xlrd.open_workbook(file_location)

df = pd.read_excel(workbook)
df['col3'] = df['col1'].astype(str) + df['col2'].astype(str)
0 голосов
/ 14 мая 2018

Другое возможное решение, использующее zip и понимание списка, которое, возможно, предпочтительнее map для удобства чтения:

>>> a = ['a', 'c']
>>> b = ['b', 'd']
>>> [' '.join(row) for row in zip(a, b)]
['a b', 'c d']
0 голосов
/ 14 мая 2018

Итак, имея два списка:

l1 = ["hi", "there"]
l2 = [" Jon", " are"]

, вы можете использовать карту, например:

list(map(lambda x, y: " ".join((x,y)), l1, l2))
['hi Jon', 'there are']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...