【发布时间】:2019-10-26 13:04:16
【问题描述】:
我有两个列表
a = ["hi", "hello", "hey"]
b = ["Sam", "dean"]
和一个包含ques列的数据框
df = pd.DataFrame({'ques':["<input1> This is <input2>", "<input1> Sir, Do you know <input2>?"]})
我想用列表a 的元素替换<input1>,用列表b 的元素替换<input2>,并创建一组独特的问题。
所以我的预期输出是:
['hi This is Sam',
'hi This is dean',
'hello This is Sam',
'hello This is dean',
'hey This is Sam',
'hey This is dean',
'hi Sir, Do you know Sam?',
'hi Sir, Do you know dean?',
'hello Sir, Do you know Sam?',
'hello Sir, Do you know dean?',
'hey Sir, Do you know Sam?',
'hey Sir, Do you know dean?']
list 或 pandas column 都可以。
我尝试了什么
from itertools import product
c = list(product(a,b))
ques = []
for q in df['ques']:
for i in c:
temp = q.replace("<input1>", i[0]).replace("<input2>", i[1])
ques.append(temp)
这给了我预期的结果,但我的数据太大,所以我正在寻找更有效的解决方案。
【问题讨论】:
标签: python python-3.x pandas