繁体   English   中英

将循环中的列添加到Pandas DataFrame

[英]Adding Columns in Loop to Pandas DataFrame

我很难理解在将循环中的列添加到数据框时Python的Pandas库的行为。 我想遍历对象列表(实际上是日期的元组),并在每个循环中添加许多列。 其简化版本如下:

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

我是Pandas的新手,因此可能缺少一些基本知识,但对我来说这似乎是个错误,也许矢量化操作的逻辑continue存在流氓? 任何想法或解释都将受到欢迎。

谢谢,多米尼克

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM