Python - 将单个csv单元拆分为多个单元

时间:2018-05-07 17:15:59

标签: python pandas

我有一个只有一列的csv文件,一个单元格的例子是:

"What is the capital of France?1)Lille 2)Paris OK3)Nice"

我试图通过将陈述与所有可能的答案分开来划分每个句子。有没有一种有效的方法来做到这一点?

4 个答案:

答案 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