#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 Я согласен, что это не «очень хорошее» решение…