Python - Разделение одной ячейки CSV на несколько ячеек - PullRequest
0 голосов
/ 07 мая 2018

У меня есть CSV-файл только с одним столбцом, пример ячейки:

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

Я пытаюсь разделить каждое предложение, отделяя утверждение от всех возможных ответов. Есть ли эффективный способ сделать это?

Ответы [ 4 ]

0 голосов
/ 07 мая 2018

Это должно сработать, вам нужно выяснить, как получить строку 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
0 голосов
/ 07 мая 2018

Вы можете использовать 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']

И, конечно, вы можете адаптировать это решение к вашим потребностям.

0 голосов
/ 07 мая 2018

Попробуйте

import re

txt = re.split("[0-9]+\)",txt)
0 голосов
/ 07 мая 2018

Я думаю, нужно 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...