Как вставить строковое значение в конкретное значение столбца на питон пандах? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть следующий фрейм данных.

import pandas as pd
data=['ABC1','ABC2','ABC3','ABC4']
data = pd.DataFrame(data,columns=["Column A"])



    Column A
0   ABC1
1   ABC2
2   ABC3
3   ABC4

Как вставить "-" азбуку в столбец A данных?

Вывод:

  Column A
0   ABC-1
1   ABC-2
2   ABC-3
3   ABC-4

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Возможное решение:

data['Column A'] = data['Column A'].str[:-1] + '-' + data['Column A'].str[-1]
print (data)
#  Column A
#0    ABC-1
#1    ABC-2
#2    ABC-3
#3    ABC-4
0 голосов
/ 17 декабря 2018

Вот способ, который предполагает только то, что числа, которым предшествует тире, находятся в конце:

df['ColumnA'].str.split('([A-z]+)(\d+)').str.join('-').str.strip('-')

0    ABC-1
1    ABC-2
2    ABC-3
3    ABC-4

Другой пример:

df = pd.DataFrame({'ColumnA':['asf1','Ads2','A34']})

даст:

df['ColumnA'].str.split('([A-z]+)(\d+)').str.join('-').str.strip('-')

0    asf-1
1    Ads-2
2     A-34
0 голосов
/ 17 декабря 2018

Самое простое решение - использовать метод replace в качестве регулярного выражения и метод inplace, чтобы сделать его постоянным в кадре данных.

>>> data['Column A'].replace(['ABC'], 'ABC-', regex=True, inplace=True)
print(data)
  Column A
0    ABC-1
1    ABC-2
2    ABC-3
3    ABC-4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...