Python-将单个csv单元格拆分为多个单元格
我有一个只有一列的csv文件,单元格示例如下:Python-将单个csv单元格拆分为多个单元格,python,pandas,Python,Pandas,我有一个只有一列的csv文件,单元格示例如下: "What is the capital of France?1)Lille 2)Paris OK3)Nice" 我试图通过将陈述与所有可能的答案分开来划分每个句子。有没有一种有效的方法可以做到这一点 我认为正则表达式的需要-\d+用于一个或多个数字,\是转义的): 样本: df = pd.DataFrame({'col':[ "What is the capital of France?1)Lille 2)Paris OK3)N
"What is the capital of France?1)Lille 2)Paris OK3)Nice"
我试图通过将陈述与所有可能的答案分开来划分每个句子。有没有一种有效的方法可以做到这一点 我认为正则表达式的需要-\d+
用于一个或多个数字,\
是转义的)
:
样本:
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
您可以将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']
当然,您可以根据需要调整此解决方案。试试看
import re
txt = re.split("[0-9]+\)",txt)
这应该可以做到,您需要弄清楚如何将您的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
我在我的shell中的python3中验证了这一点。享受吧!
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