Я просто хочу знать, как установить все элементы одного столбца данных в массивах в Pandas.
Точно так же, столбец один и два
a b c d one two
0 1 2 3 4 [1, 2] [1, 2]
1 2 2 3 4 [2, 2] [2, 2]
2 3 2 3 4 [3, 2] [3, 2]
Я пытался,но только так:
d['one']=[[1,2],[2,2],[3,2]]
И если я хочу использовать массив Numpy вместо встроенного массива Python, например:
d['one']=np.array([[1,2],[2,2],[3,2]])
Это значит:
a b c d one two
0 1 2 3 4 1 [1, 2]
1 2 2 3 4 2 [2, 2]
2 3 2 3 4 3 [3, 2]
Или я хочу установить столбец для одного и того же массива одновременно, например,
d['one']=[1,2], or d['c']=[1,2]
Примерно так:
a b c d one two
0 1 2 3 4 [1, 2] [1, 2]
1 2 2 3 4 [1, 2] [2, 2]
2 3 2 3 4 [1, 2] [3, 2]
Имеется ошибка:
ValueError: длина значений не соответствует длине индекса
Кроме того, если я хочу изменить значения столбца b на массивы в соответствии с условиями, я обнаружил, что могуне делай этого.Поскольку мне нужно использовать условия, существует последовательность операций присваивания, что означает, что я не могу установить для столбца такие массивы, как этот:
d['b']=[[1,2],[6,7],[6,7]]
, за один раз.Мне нужно сделать это шаг за шагом.
Например, сначала установите для столбца b значение [1,2], где a = 1,
d.loc[d['a']==1,'b']=[1,2]
a b c d one two
0 1 [1,2] 3 4 [1, 2] [1, 2]
1 2 2 3 4 [2, 2] [2, 2]
2 3 2 3 4 [3, 2] [3, 2]
Затем установите для столбца b значение [6,7], [6,7] где a = 2 или a = 3,
d.loc[(d['a']==2)|(d['a']==3),'b']=[6,7]
a b c d one two
0 1 [1,2] 3 4 [1, 2] [1, 2]
1 2 [6,7] 3 4 [2, 2] [2, 2]
2 3 [6,7] 3 4 [3, 2] [3, 2]
В первом ошибка:
Должны иметь равные ключи и значение lenпри установке с итерацией
Если я делаю это по-другому:
d['b'][0]=[1,2]
Также ошибка:
ValueError: установка элемента массива споследовательность.
И последний приходит к:
a b c d one two
0 1 2 3 4 [1, 2] [1, 2]
1 2 6 3 4 [2, 2] [2, 2]
2 3 7 3 4 [3, 2] [3, 2]
, что не я хочу, так как написать, чтобы добиться этого эффекта?
Подводя итог,
Как я могу использовать массив numpy для достижения этой цели?Как я могу установить для столбца один и тот же массив одновременно?
Как изменить значения столбца на массивы в соответствии с условиями?