Я пытаюсь заполнить "_" по обе стороны строки в ряду данных.

Вот датафрейм.

A
cat
dog
rat

Так что я использовал это

A.str.pad(5, side='both', fillchar="_")

Выход

A
_cat_
_dog_
_rat_

Но теперь я получил серию с переменной длиной строки.

A
cat
dog
rat
crocodile
moose

Ожидаемый результат

A
_cat_
_dog_
_rat_
_crocodile_
_moose_

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

-1
Akash Kumar 24 Июн 2019 в 16:01

2 ответа

Лучший ответ

Основные операции с пандами дадут вам то, что вы хотите

'_' + df['A'].astype(str) + '_'

Выход:

0          _cat_
1          _dog_
2          _rat_
3    _crocodile_
4        _moose_
2
Yuca 24 Июн 2019 в 13:06

Вы также можете использовать apply:

s = pd.Series(['A', 'cat', 'dog', 'rat', 'crocodile', 'moose'])
s.apply(lambda x: "_" + x + "_")
0
Pankaj Joshi 24 Июн 2019 в 13:09