Как применить список к большему набору - PullRequest
0 голосов
/ 22 мая 2019

Как я могу применить список x имен к большему списку элементов одинаковой длины (или строк данных)?

У меня есть кадр данных x строк, и мне нужно применитьнабор y имен для фрейма.Как я могу назначить имена одинаковой длины в кадре данных?

, то есть для df 10 rows длинных и 3 имен, будет применяться name[0] к df row 0-3;name[1] до df 3-6names[2] до df 6-9.

Я не могу использовать цикл itertools, так как мне нужно, чтобы это было в порядке (name[0] до df row 0-3)

Я знаю, что этопростая задача, просто не могу понять это.Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 мая 2019
import pandas as pd
import itertools

df = pd.DataFrame({"A": [1,2,3,4,5,6,7,8,9]})
l1 = ["a", "b", "c"]

dic = sorted(zip(df.A.index,itertools.cycle(l1)), key= lambda x: x[1])
df['B'] = [x[1] for x in dic]
0 голосов
/ 22 мая 2019

Использование pandas.cut с аргументом labels=:

Значения корзины в дискретных интервалах Используйте cut, когда вам нужно сегментировать и сортировать значения данных в ячейки.

метки: указывает метки для возвращаемых Бункеры.

import pandas as pd
df = pd.DataFrame({"A": [1,2,3,4,5,6,7,8,9,10]})
l1 = "a", "b", "c"  # abc
df["B"] = pd.cut(range(len(df)), len(l1), labels=l1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...