所以我将这个xlsx文件导入Python,其中包含两列。我想统一每一列以形成统一的字符串。因此输出应该是一列,其中第1列的字符串与第2列的字符串合并。行数将保持不变。下面是我的代码,没有什么可以看到的疯狂,我正在考虑做一个for循环,任何想法?非常感谢!
import xlrd
file_location = "C:/Users/Desktop/manual.xlsx"
workbook = xlrd.open_workbook(file_location)
答案 0 :(得分:1)
所以,有两个列表:
l1 = ["hi", "there"]
l2 = [" Jon", " are"]
你可以使用map例如:
list(map(lambda x, y: " ".join((x,y)), l1, l2))
['hi Jon', 'there are']
答案 1 :(得分:1)
如果xlsx真正只包含2列,那么为什么不将整个文件作为原始文本读取,然后按换行进行拆分,而不是使用xlrd加载工作簿?如果您按照这种方式考虑,该文件已经有了“合并”的列......
可以这么简单:
rows = open("filename").read().splitlines()
答案 2 :(得分:0)
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)
答案 3 :(得分:0)
使用zip
和列表理解的另一种可能的解决方案,可以说是map
的可读性:
>>> a = ['a', 'c']
>>> b = ['b', 'd']
>>> [' '.join(row) for row in zip(a, b)]
['a b', 'c d']