У меня есть фрейм данных со столбцом, содержащим наборы из одного элемента. Одноэлементные элементы всегда имеют тип str
. Я хочу изменить значения этого столбца на одно значение str
внутри каждого набора.
Мое понимание панд до сих пор привело меня к использованию функции transform
в моем фрейме данных. Поскольку я хочу изменить только один столбец, я вызываю его именно для этого столбца.
Я пробовал map
, transform
и apply
(я не могу (?) Использовать applymap, потому что столбец - это просто серия). Вот примеры того, что я пробовал:
df['foo'].map(''.join)
df['foo'].transform(''.join)
df['foo'].apply(''.join)
возвращает мой столбец как серию, но не меняет значения df
foo
столбца на месте. Затем я попробовал это:
df['foo'] = df['foo'].map(''.join)
df['foo'] = df['foo'].transform(''.join)
df['foo'] = df['foo'].apply(''.join)
поменяйте ''.join
на lambda x: next(iter(x))
и произойдет та же ошибка.
некоторые образцы данных из head(df)
(спасибо за предложение Юка):
treatment AAA AAA AAA ... BBB BBB foo
15025 0.0 0.0 0.0 ... 126250.0 191730.0 {K00134}
6746 1523000.0 2374300.0 1394500.0 ... 536750.0 1179000.0 {K00134}
11097 1146200.0 423280.0 316280.0 ... 0.0 115880.0 {K00895}
3098 193000.0 57943.0 94483.0 ... 0.0 191530.0 {K01689}
14797 53168.0 0.0 65262.0 ... 0.0 0.0 {K00169}
[5 rows x 9 columns]
Я думаю, что мое понимание apply
, map
, transform
и т. Д. Требует некоторой работы, но я просто хочу выяснить, как это сделать и, возможно, почему мой метод не работает. Спасибо!