Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在dataframe中将虚拟值填充为模式?_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 如何在dataframe中将虚拟值填充为模式?

Python 如何在dataframe中将虚拟值填充为模式?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个如下所示的数据帧 op1 = pd.DataFrame({ 'subject_id':[1,1,1,1,1,1], 'date' : ['1/1/2017','1/2/2017','1/3/2017','1/4/2017','1/5/2017','1/6/2017'], 'val' :[5,10,5,16,26,6] }) 如下所示 我试图在从0th索引开始的每个记录中,用2的步长值填充vac op1['flag'] = ['vac',start

我有一个如下所示的数据帧

op1 = pd.DataFrame({
     'subject_id':[1,1,1,1,1,1],
     'date' : ['1/1/2017','1/2/2017','1/3/2017','1/4/2017','1/5/2017','1/6/2017'],
     'val' :[5,10,5,16,26,6]
    })
如下所示

我试图在从
0th
索引开始的每个记录中,用
2
的步长值填充
vac

op1['flag'] = ['vac',start = 0, step = 2]
我可以像下面那样使用
insert
,但我必须重复多次

op1.insert(2, "flag", "vac") 
我希望我的输出如下所示


您可以分配一个新的空列,并用
vac
填充每个
2
位置:

op1['flag'] = ''
op1.loc[::2, 'flag'] = 'vac'

    subject_id   date    val flag
0           1  1/1/2017    5  vac
1           1  1/2/2017   10     
2           1  1/3/2017    5  vac
3           1  1/4/2017   16     
4           1  1/5/2017   26  vac
5           1  1/6/2017    6     
试试这个:

>>op1[“flag”]=[“vac”if i%2==0 else”,用于范围内的i(len(op1.subject_id))]
>>>op1
日期主题标识值标志
0 2017年1月1日15伏交流电
1  1/2/2017           1   10
2017年2月1日3日15伏交流电
3  1/4/2017           1   16
4 2017年1月5日1 26伏交流电
5  1/6/2017           1    6
让我们试试

op1['New']=(['','val']*((len(op1)//2)+1))[:len(op1)]

那作业简直是天才!下面所有的答案都是好的。尤其是雅图和马克的回答有很短的条件。尽管如此,其他答案也给出了预期结果。然而,我只能将一个答案标记为解决方案,所以我同意Yatu的答案。谢谢大家的帮助。对所有答案都投了赞成票
op1['New']=(['','val']*((len(op1)//2)+1))[:len(op1)]