Как преобразовать Ряд панд с несколькими объектами в ряд строк? - PullRequest
0 голосов
/ 29 ноября 2018

Я хотел бы преобразовать мою серию в строки:

s = pd.Series({'A':[10,'héllo','world']})

в нечто вроде этого

s = pd.Series({'A':['10','héllo','world']})

Но без использования итерации.Я пытался использовать pandas.DataFrame.astype, но это не сработало.

Большое спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Проблема в том, что вы определили серию списков :

s = pd.Series({'A':[10,'héllo','world']})

print(s)

A    [10, héllo, world]
dtype: object

Если это действительно то, что у вас есть, вам нужно изменить каждый список в цикле уровня Python,Например, через pd.Series.apply:

s = s.apply(lambda x: list(map(str, x)))

Если у вас есть серия скаляров , то astype будет работать:

s = pd.Series([10,'héllo','world'])

res = s.astype(str)

print(res, res.map(type), sep='\n'*2)

0       10
1    héllo
2    world
dtype: object

0    <class 'str'>
1    <class 'str'>
2    <class 'str'>
dtype: object
0 голосов
/ 29 ноября 2018

Вы можете сделать

string_series = s.apply(lambda val: str(val))

, но это повторяется в фоновом режиме.

Обратите внимание, что

s.astype(str)

не работает на месте, но возвращаеткопия.

...