панды: заполните пустой столбец альтернативными значениями

#python #pandas #numpy #alternate

Вопрос:

У меня есть фрейм данных следующим образом, но с большим количеством строк

 import pandas as pd
import numpy as np

d = {'col1': ['data1', 'data2','data3','data4','data5'], 
         'col2': ['a', 'b','c','d','e']}
df = pd.DataFrame(data=d)
 

Я добавил пустой столбец в этот фрейм данных

 df['type']= ' '
 

теперь я хотел бы заполнить пустую колонку альтернативными значениями. поэтому, если индекс четный, я хотел бы добавить «type_a», а если индекс нечетный, я хотел бы добавить «type_b».

Я сделал следующее

 df['type'] = np.where(df.iloc[::2,::2], 'type_a', 'type_b') 
 

однако индекс не совпадает, и я получаю следующую ошибку:

 ValueError: Length of values does not match length of index
 

Ответ №1:

пробовать:

 df['type']=np.where(df.index%2==0, 'type_a', 'type_b') 
 

выход df:

     col1    col2    type
0   data1   a       type_a
1   data2   b       type_b
2   data3   c       type_a
3   data4   d       type_b
4   data5   e       type_a