#python #pandas #string
Вопрос:
У меня есть веревочка text ="a,b,c"
и у меня есть набор ключевых слов в фрейме данных, подобном этому:
book=
col1 col2 1 car 2 bike 3 bus 4 train`
я хочу получить выходную строку, добавив все эти слова в col2
со
знаком после каждого слова в тексте:
Пример вывода:
a car bike bus train b car bike bus train c car bike bus train ....
Ответ №1:
Предполагая, что вы ожидаете получить список в качестве вывода, то, что вы хотите, легко достижимо с помощью itertools.product
:
from itertools import product text = 'a,b,c' list(map(' '.join, product(text.split(','), [df['col2'].str.cat(sep=' ')])))
выход:
['a car bike bus train', 'b car bike bus train', 'c car bike bus train']
Ответ №2:
Вот, возможно, полезное и простое решение:
# the initail string. str = "a,b,c" # separate the str string by the comma. str_list = str.split(',') # Import pandas library import pandas as pd # initialize list of lists data = [[1, 'car'], [2, 'bike'], [3, 'bus'], [4, 'train']] # Create the pandas DataFrame df = pd.DataFrame(data, columns = ['index', 'item']) # iterate over the str_list for s in str_list: # iterate over the dataframe. for index, row in df.iterrows(): s = s ' ' row['item'] print(s)