#python #dataframe
Вопрос:
Выберите все значения с одной строкой, если у вас несколько значений результата поиска с использованием isin
фрейма данных pandas, этот пример результата должен быть "'40','50','60','70','80'"
код на python
d = [['b', '1', 40],
['b', '2', 50],
['b', '3', 60],
['b', '4', 70],
['b', '5,6', 80]]
p = pd.DataFrame(d)
p.columns = ['one', 'two', 'three']
p.loc[p['one'].isin(["b"])]['three']
Результат выполнения
one two three
0 b 1 40
1 b 2 50
2 b 3 60
3 b 4 70
4 b 5,6 80
ожидаемый результат
p.loc[p['one'].isin(["b"])]['three'][*]
"'40','50','60','70','80'"
Ответ №1:
Вы могли бы попробовать что-то вроде этого :
# get the numbers to a list
numlist = p.loc[p['one'].isin(["b"])]['three'].tolist()
# concatenate the list to get the desired format
",".join(f"'{num}'" for num in numlist)
Выход:
"'40','50','60','70','80'"
Комментарии:
1. дорогая, что значит f»{число}»? можете ли вы объяснить подробнее ?
2. Он преобразуется
num
в строковую форму и добавляет символы одинарных кавычек для каждогоnum
.