Как удалить круглые скобки и знак апострофа в списке вывода в python

#python #pandas #list #dataframe

Вопрос:

Я пытаюсь удалить круглые скобки и знак апострофа из выходного файла Excel, в котором есть один список (НАПРИМЕР: (‘INTCAS199’, ‘INTCAS253’)). Я бы хотел, чтобы это было INTCAS199, вместо этого INTCAS253.

Вот мой код до сих пор:

 import itertools
import pandas as pd

lists_combos = "combos_lists.csv"

df = pd.read_csv(lists_combos)

list_1 = list(df['List 1'].dropna())
list_2 = list(df['List 2'].dropna())

pairs=[(x,y) for x in list_1 for y in list_2]
print(pairs)

outputDf=pd.DataFrame(data=[pairs]).transpose()
outputDf.columns = ['Paired']
outputDf.to_csv('combos_done.csv',index=False)
 

Комментарии:

1. Включите пример combos_list.csv. Первые 6 строк должны быть в порядке. Мы должны иметь возможность скопировать его и сделать частью проверенного решения.

2. Вы хотите, чтобы выходной CSV был одним столбцом?

3. Похоже, что эти значения являются строками, и вы хотите объединить их в одну строку. Так, pairs=[" ".join((x,y)) for x in list_1 for y in list_2] . Транспонирование теперь превращает фрейм данных в одну строку со множеством столбцов, а затем вы пытаетесь присвоить ему имя одного столбца. Если бы вы просто опубликовали образец CSV, ответить на этот вопрос было бы намного проще.

Ответ №1:

(НАПРИМЕР: (‘INTCAS199’, ‘INTCAS253’)). Я бы хотел, чтобы это было INTCAS199, вместо этого INTCAS253.

Приведенный ниже код выполняет «очистку», которую вы ищете. Функция, которую нужно использовать, это replace

 input_str = '''('INTCAS199', 'INTCAS253')'''
output_str = input_str.replace('(', '').replace(''', '').replace(')', '')
print(output_str)
 

выход

 INTCAS199, INTCAS253
 

Комментарии:

1. уродливый хак. Разве ОП не должен просто соединить эти пары в строку, которую он хочет в начале?

2. @tdelaney Я согласен, что это не «очень хорошее» решение…