矢量化的循环熊猫

时间:2020-06-12 17:04:00

标签: python pandas loops vectorization

嗨,我需要根据某些条件创建一个值为1或0的列。我的数据帧很大,因此一般的for循环甚至apply都非常慢。我想使用Pandas或更优选Numpy矢量化。以下是数据示例和我的无效代码:

election_year     D_president

1992                 0
1992                 0
1996                 0
1996                 0
2000                 0
2004                 0
2008                 0
2012                 0
test_df['D_president'] = 0
election_year = test_df['election_year']
test_df['D_president'] = test_df.loc[((election_year == 1992) | 
(election_year == 1996) | 
(election_year == 2008)| 
(election_year == 2012)), 'D_president'] = 1

因此,基本上,这些年来,我需要在“ D_president”列中获得值1。但是,当我执行此代码时,即使在2000年和2004年,我都得到了1。 另外,如何将其转换为具有.values的Numpy向量化?

1 个答案:

答案 0 :(得分:1)

似乎您在同一行上有两个“ =”分配。尝试删除最左边的一个test_df ['D_president']另外,对于该测试,您可以将其替换为lection_year.isin([1992,1996,2008,2012]))