Панды: Как работать с DataFrame.values, но сохранять индексы нетронутыми? - PullRequest
0 голосов
/ 12 мая 2019

Я работаю с DataFrame, у которого есть столбец со списками целых чисел разных размеров.Я применяю функцию для заполнения списков до их максимального размера значениями 'np.nan'.Вот функция:

df['a'] = pd.DataFrame(df['a'].values.tolist()).agg(list, 1)

Позже я конвертирую эти значения np.nan в -1 .Проблема в том, что при использовании DataFrame.values ​​ индекс для результирующей Series начинается с 0 и аналогичным образом присваивается моему прежнему столбцу.В результате, если index для df ['a'] начинается с N, мой новый df ['a'] будет содержать N строк со значениями NaN.

Например, есливходной df:

3                    [13, 14, 15]
4                [16, 17, 18, 19]
5            [20, 21, 22, 23, 24]
6            [25, 26, 27, 28, 29]
7    [30, 31, 32, 33, 34, 35, 36]
8                [30, 37, 38, 39]
9        [40, 41, 42, 43, 44, 45]
Name: a, dtype: object

Вывод становится:

3      [25.0, 26.0, 27.0, 28.0, 29.0, nan, nan]
4    [30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0]
5       [30.0, 37.0, 38.0, 39.0, nan, nan, nan]
6     [40.0, 41.0, 42.0, 43.0, 44.0, 45.0, nan]
7                                           NaN
8                                           NaN
9                                           NaN
Name: a, dtype: object

Это проблема, потому что я использую хвост данных для проверки.Как я могу применить функцию к значениям, сохраняя при этом индексы без изменений?

ПРИМЕЧАНИЕ. Я понимаю, что могу применить функцию ко всему DataFrame и разделить ее позже, или что я могу переиндексировать хвост /проверка запускается с 0. Но я все еще хочу знать, как решить эту проблему.

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