内部加入Pandas的两列

时间:2013-09-10 12:51:56

标签: python numpy pandas

我对熊猫有一个相当基本的问题,但我尝试合并并加入没有成功 -edit:这些是在同一个数据框中,并不清楚。我们确实在缩小数据。

         print df

       product_code_shipped    quantity  product_code
     0   A12395                   1        A12395 
     1   H53456                   4        D78997
     2   A13456                   3        E78997
     3   A12372                   8        A13456 
     4   E28997                   1        D83126
     5   B78997                   2        C64516
     6   C78117                   9        B78497
     7   B78227                   1        H53456
     8   B78497                   2        J12372

所以我想要一个产品代码列,其中包含唯一的产品代码及其他数据。所以数量和颜色说,我只想要发货产品的产品代码(在另一列中有颜色)。如何在同一数据框中执行此操作? 所以我应该得到                 print df2

       product_code_shipped    quantity  product_code   color 
     0   A12395                   1        A12395        red
     1   H53456                   4        H53456        blue
     2   B78497                   2        B78497        yellow

1 个答案:

答案 0 :(得分:2)

我对你的问题感到有些困惑,特别是“独特的产品代码”输入...我们是否在缩小数据?这个例子没有说清楚。尽管如此,我还是试一试:

许多DataFrame方法依赖索引来自动对齐数据。在您的情况下,将这些DataFrame的索引设置为产品代码似乎很方便。所以你有这个:

In [132]: shipped
Out[132]: 
                      quantity
product_code_shipped          
A                            1
B                            4
C                            2

In [133]: info
Out[133]: 
               color
product_code        
A                red
B               blue
C             yellow

现在,join不需要额外的参数;它可以为您提供您想要的(我认为)。

In [134]: info.join(shipped)
Out[134]: 
               color  quantity
product_code                  
A                red         1
B               blue         4
C             yellow         2

如果这不能回答您的问题,请通过提供示例输入(包括color来自的位置)以及来自该输入的确切输出来澄清它。