pandas - обновить значение в кадре данных из элемента split другого элемента df - PullRequest
0 голосов
/ 16 мая 2018

Python изучает новичков в Pandas, так что, вероятно, это неправильный подход к этому.

В фрейме данных df, есть столбцы testID и proj.

testID - это int (например, '23'), а proj - это имя с разделением подчеркивания, состоящее из 3 частей (например, bob_xp_sam).Я хочу изменить все значения testID, чтобы они стали, например, xp-23 (путем захвата "xp" из proj и конкатенации его к каждому существующему значению testID.)

Этогде я нахожусь, но он не летает:

df['testID'] = df['proj'].str.split('_')[1] +'-'+ df['testID']

Я пробовал варианты, такие как:

df['proj'].split('_')[1]
 > AttributeError: 'Series' object has no attribute 'split'

df['proj'].str.split('_')[1]
> TypeError: can only concatenate list (not "str") to list

Почти уверен, что мой подход неправильный - небольшое направление будетоценили.

1 Ответ

0 голосов
/ 16 мая 2018

Вам нужен еще один str метод доступа перед [1] для доступа к отдельному элементу в столбце типа списка (возвращается split):

df['proj'].str.split('_').str[1]
#                         ^^^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...