pandas: у буфера неверное количество измерений (ожидается 1, получено 0) при преобразовании столбца набора данных - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть фрейм данных со столбцом, содержащим наборы из одного элемента. Одноэлементные элементы всегда имеют тип 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 и т. Д. Требует некоторой работы, но я просто хочу выяснить, как это сделать и, возможно, почему мой метод не работает. Спасибо!

1 Ответ

0 голосов
/ 04 апреля 2019

fix : как уже упоминалось @Yuca, у меня были повторяющиеся имена столбцов. Это произошло потому, что ранее я удалил 2/3 уровня из исходного MultiIndex, назначенного столбцам df. Когда я переназначил столбцы с уникальными именами, строки с = сработали! Спасибо всем за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...