У меня есть столбец данных (pandas) в столбце данных (серии), содержащий индексы одного интересующего символа внутри строковых элементов другого столбца.Есть ли способ для меня получить доступ к этим интересующим символам на основе столбца индекса в векторизованном виде, подобно функциям dataframe ['name']. Str. *? [править: см. Комментарий ниже] Если нет (или независимо от этого, на самом деле), что бы вы назвали предпочтительным подходом здесь?
[Правка: это предположение было неверным, так какуказал jpp, но я оставляю это здесь для прослеживаемости]
Я пытаюсь избежать ненужного многословия, такого как применение функции перевода с использованием map
или необходимость создания отдельногорецепт индексации (например, словарь, содержащий индексы), чтобы сделать что-то вроде
myDataFrame['myDesiredResult'] =
myDataFrame['myStrCol'].apply(myCharacterExtractionFunction, myIndexingRecipe)
Я бы предпочел придерживаться numpy и pandas и не смешивать больше модулей, если это вообще возможно.
Иллюстрация того, как могут выглядеть данные:
myStrCol myIndices myDesiredResult
0 ABC 1 B
1 DEF 0 D
2 GHI 2 I
Кроме того, и, возможно, полезно, чтобы понять, как на самом деле ведет себя массив numpy в оболочке панд, было бы здорово, если бы кто-то могобъясните, имеет ли смысл иметь отдельный массив с индексами, например:
import pandas
import numpy
myPandasStringSeries = pandas.Series(['ABC', 'DEF', 'GHI'])
myPandasStringSeries
0 ABC
1 DEF
2 GHI
myNumpyIndexArray = numpy.array([1, 0, 2])
myNumpyIndexArray
array([1, 0, 2])
Мне кажется, что то, что я хочу, очень похоже на это предложение , касающееся подстрок, но, похоже, там пока нет решения.Кроме того, все, что я обнаружил, относится к методам Series.str, которые работают с использованием одного и того же параметра для всех элементов серии, например:
myDataFrame['newColumn'] = myDataFrame['oldColumn'].str.split('_').str.get(0)