我有一个只有一列的csv文件,一个单元格的例子是:
"What is the capital of France?1)Lille 2)Paris OK3)Nice"
我试图通过将陈述与所有可能的答案分开来划分每个句子。有没有一种有效的方法来做到这一点?
答案 0 :(得分:3)
我认为需要split
正则表达式 - \d+
适用于一个或多个数字,\)
已转义)
:
df1 = df['col'].str.split('\d+\)', expand=True)
样品:
df = pd.DataFrame({'col':[
"What is the capital of France?1)Lille 2)Paris OK3)Nice",
"What is the capital of Slovakia?1)Bratislava OK 2)Zilina3)Praha"]})
df1 = df['col'].str.split('\d+\)', expand=True)
df1.columns = ['Question','No1','No2','No3']
print (df1)
Question No1 No2 No3
0 What is the capital of France? Lille Paris OK Nice
1 What is the capital of Slovakia? Bratislava OK Zilina Praha
答案 1 :(得分:0)
您可以对此模式使用re.split()
:
import re
a = "What is the capital of France?1)Lille 2)Paris OK3)Nice"
answers = re.split(r'\d+\)', a)
print(answers)
输出:
['What is the capital of France?', 'Lille ', 'Paris OK', 'Nice']
当然,您可以根据自己的需求调整此解决方案。
答案 2 :(得分:0)
尝试
import re
txt = re.split("[0-9]+\)",txt)
答案 3 :(得分:0)
这应该可以解决这个问题,你需要弄清楚你的csv字符串,并且re.split()可能需要修改但应该有效。 :
csv_string = "What is the capital of France?1)Lille 2)Paris OK3)Nice"
csv_split = re.split('\d\)', csv_string)
question = csv_split[0]
options = []
for option in csv_split[1:]:
options.append(option)
return options