Python 将循环中的列添加到数据帧

Python 将循环中的列添加到数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,在向数据帧添加循环中的列时,我很难理解Python熊猫库的行为。我想在一个对象列表中循环(这些实际上是日期的元组),在每个循环中添加一些列。简化版本如下: import pandas as pd import numpy as np df = pd.DataFrame(np.arange(6).reshape(2, 3), columns=('a', 'b', 'c')) for x in range(10): # Printed on each loop: print('

在向数据帧添加循环中的列时,我很难理解Python熊猫库的行为。我想在一个对象列表中循环(这些实际上是日期的元组),在每个循环中添加一些列。简化版本如下:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(6).reshape(2, 3), columns=('a', 'b', 'c'))

for x in range(10):

    # Printed on each loop:
    print('Adding column type 1')
    df['{}_type1'.format(x)] = 'Type 1'

    # Printed on last loop only:
    print('Adding column type 2')
    df['{}_type2'.format(x)] = 'Type 2'
我希望这会向数据帧添加20个新列(每个循环2个),但它会添加11个列;“类型1”的前10个和“类型2”的第11个。此外,第一次打印输出10次,但第二次仅输出一次:

Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 1
Adding column type 2
我是新来熊猫的,所以可能遗漏了一些基本的东西,但这对我来说似乎是一个bug,可能是执行矢量化操作的逻辑中的一个流氓
continue
?任何想法或解释都将受到欢迎

谢谢,
多米尼克实际上不是熊猫的问题。上面的场景是通过右键单击将代码粘贴到iPython中创建的。使用%paste magic函数(如文档所建议的)不会产生此问题。

您的代码对我很有用,您确定没有缩进问题吗?感谢您这么快回来。你说得对-我试着把它作为脚本运行,结果成功了。我应该提到我在iPython中运行这个,这一定是导致问题的原因。我在iPython中运行了您的代码,它工作正常,是否存在复制和粘贴问题。还有,你想在这里实现什么更多的测试表明,我通过右键单击从剪贴板粘贴上述输出,但使用magic%粘贴功能,我没有这样的问题。吸取的教训。简言之,我试图按财务期间对公司营业额进行一些分析,因此我添加的列是基于其他列中日期的员工总数和离职人数。我确信有更好的方法来实现这一点,但它和其他任何东西一样都是一种学习练习。再次感谢你的帮助。