У меня есть серия в пандах, состоящая из пустых списков.добавить элемент к списку в пандах по индексу
>>> s = pd.Series([[]] * 20, index= range(0,20))
Я хочу, чтобы добавить теги к определенным элементам по индексу.
>>> for i in [1,3,5,7,11]:
... s.loc[ i ].append('prime')
, но это то, что я получаю:
>>> s
0 [prime, prime, prime, prime, prime]
1 [prime, prime, prime, prime, prime]
2 [prime, prime, prime, prime, prime]
3 [prime, prime, prime, prime, prime]
4 [prime, prime, prime, prime, prime]
5 [prime, prime, prime, prime, prime]
6 [prime, prime, prime, prime, prime]
7 [prime, prime, prime, prime, prime]
8 [prime, prime, prime, prime, prime]
9 [prime, prime, prime, prime, prime]
10 [prime, prime, prime, prime, prime]
11 [prime, prime, prime, prime, prime]
12 [prime, prime, prime, prime, prime]
13 [prime, prime, prime, prime, prime]
14 [prime, prime, prime, prime, prime]
15 [prime, prime, prime, prime, prime]
16 [prime, prime, prime, prime, prime]
17 [prime, prime, prime, prime, prime]
18 [prime, prime, prime, prime, prime]
19 [prime, prime, prime, prime, prime]
dtype: object
Который не то, что я хочу.
Я хотел бы, чтобы это было так:
>>> s
0 []
1 [prime]
2 []
3 [prime]
4 []
5 [prime]
6 []
7 [prime]
8 []
9 []
10 []
11 [prime]
12 []
...
Я стучал голову к столу в течение часа на это. Всего pandas newb.
UPDATE
следующие работы, как и ожидалось.
s = pd.Series([[]] * 20, index= range(0,20))
>>> for i in [1,3,5,7,11]:
... s.loc[ i ] = s.loc[ i ] + ['prime']
В конечном итоге я хочу, чтобы на каждом индексе находилось несколько «тегов», это откат на данный момент. Мне все еще хотелось бы знать, почему приложение не работает.
Не уверен, что вы пытаетесь достичь здесь, но вы можете просто изменить строку следующим образом: 's.iloc [я] = [«простой»]' – EdChum
Be предупредил: наличие списков (или, в более общем плане, нескаляров) в качестве элементов в рядах и в DataFrames обычно приводит к головным болям, хотя иногда это полезно в качестве промежуточного шага. – DSM