Pandas dataframe.append给出错误:计划形状未对齐

时间:2017-09-22 05:52:02

标签: python python-2.7 pandas sklearn-pandas

我有两个数据框,其中包含下面提到的列。当我尝试将第二个附加到第一个时,我得到ValueError:计划形状没有对齐错误。

Df1列:

Index([                         u'asin',             u'view_publish_data',

                     u'data_viewer',           u'relationship_viewer',
                  u'parent_task_id',                 u'submission_id',
                          u'source',                 u'creation_date',
                      u'created_by',                   u'vendor_code',
                            u'week',                    u'brand_name',
                 u'bullet_features',                    u'color_name',
                             u'itk',                     u'item_name',
                      u'list_price',                     u'new_brand',
                u'product_catagory',          u'product_sub_catagory',
                 u'product_tier_id',        u'replenishment_category',
                       u'size_name',                    u'cost_price',
               u'item_type_keyword',                     u'our_price',
          u'is_shipped_from_vendor',      u'manufacturer_vendor_code',
             u'product_description',                  u'vendor_code'],
  dtype='object')

df2列:

    UIImage *imgCart = [self imageWithImage:[UIImage imageNamed:@"ic_cart"] scaledToSize:CGSizeMake(35, 35)] ;
    UIButton *btnCart = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
    [btnCart addTarget:self action:@selector(btnCartClicked:) forControlEvents:UIControlEventTouchUpInside];
    [btnCart setBackgroundImage:imgCart forState:UIControlStateNormal];
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btnCart];



-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    //UIGraphicsBeginImageContext(newSize);
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
    // Pass 1.0 to force exact pixel size.
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

1 个答案:

答案 0 :(得分:4)

您可以concat使用align对齐DataFrame的返回元组:

cols1 = pd.Index([ u'asin', u'view_publish_data',

                u'data_viewer',      u'relationship_viewer',
             u'parent_task_id',            u'submission_id',
                     u'source',            u'creation_date',
                 u'created_by',              u'vendor_code',
                       u'week',                u'processor',
                 u'brand_name',           u'brand_name_new',
               u'bullet_point',               u'cost_price',
          u'country_of_origin',                 u'cpu_type',
               u'cpu_type_new',                u'item_name',
          u'item_type_keyword',               u'list_price',
     u'minimum_order_quantity',                    u'model',
           u'product_category', u'product_site_launch_date',
        u'product_subcategory',          u'product_tier_id',
     u'replenishment_category',      u'product_description',
                 u'style_name',                       u'vc',
                u'vendor_code',     u'warranty_description'])

cols2 = pd.Index([ u'asin', u'view_publish_data',

                     u'data_viewer',           u'relationship_viewer',
                  u'parent_task_id',                 u'submission_id',
                          u'source',                 u'creation_date',
                      u'created_by',                   u'vendor_code',
                            u'week',                    u'brand_name',
                 u'bullet_features',                    u'color_name',
                             u'itk',                     u'item_name',
                      u'list_price',                     u'new_brand',
                u'product_catagory',          u'product_sub_catagory',
                 u'product_tier_id',        u'replenishment_category',
                       u'size_name',                    u'cost_price',
               u'item_type_keyword',                     u'our_price',
          u'is_shipped_from_vendor',      u'manufacturer_vendor_code',
             u'product_description',                  u'vendor_code'])
df1 = pd.DataFrame([range(len(cols1))], columns=cols1)
df2 = pd.DataFrame([range(len(cols2))], columns=cols2)

df = pd.concat(list(df1.align(df2)), ignore_index=True)
print (df)

   asin  brand_name  brand_name_new  bullet_features  bullet_point  \
0     0          12            13.0              NaN          14.0   
1     0          11             NaN             12.0           NaN   

   color_name  cost_price  country_of_origin  cpu_type  cpu_type_new  ...   \
0         NaN          15               16.0      17.0          18.0  ...    
1        13.0          23                NaN       NaN           NaN  ...    

   style_name  submission_id    vc  vendor_code  vendor_code  vendor_code  \
0        30.0              5  31.0            9            9           32   
1         NaN              5   NaN            9           29            9   

   vendor_code  view_publish_data  warranty_description  week  
0           32                  1                  33.0    10  
1           29                  1                   NaN    10  

[2 rows x 46 columns]