根据另一个CSV中的列过滤一个CSV

时间:2019-03-11 16:05:52

标签: python python-3.x pandas

我有2个CSV文件。

第一个CSV是一个小型数据集,如下所示:

CSV ONE.csv`

COLUMN A    COLUMN B    COLUMN C    COLUMN D    COLUMN E
    1          XYZ          A            B           D
    2          YZX.12       E            F           G
    3          ZYX.567      H            I           J 

第二个CSV数据集看起来更大:

CSV TWO.csv

COLUMN A   COLUMN B   COLUMN C   COLUMN D   COLUMN E   COLUMN F   COLUMN G
   1        ZYX.567       A          B          D         AAA        ABB
   2        SAMPLE A      E          F          G         BBB        ACA  
   3        SAMPLE B      H          I          J         CCC        BBC 
   4        XYZ           A          B          D         ABA        BBA
   5        SAMPLE C      E          F          G         ABC        BAB
   6        YZX.12        H          I          J         CCA        CAC

我希望输出为CSV CSV 2,但仅使用CSV ONE中的COLUMN B:

COLUMN A   COLUMN B   COLUMN C   COLUMN D   COLUMN E   COLUMN F   COLUMN G
   1        ZYX.567       A          B          D         AAA        ABB
   4        XYZ           A          B          D         ABA        BBA
   6        YZX.12        H          I          J         CCA        CAC

我正在使用Pandas数据框...您能提供的任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个merge问题,只能从右侧数据框中选择相关列。

df_merged = pd.merge(df1, df2[['COLUMN B', 'COLUMN F', 'COLUMN G']], on='COLUMN B', how='inner')

print(df_merged)
   COLUMN A COLUMN B COLUMN C COLUMN D COLUMN E COLUMN F COLUMN G
0         1      XYZ        A        B        D      ABA      BBA
1         2   YZX.12        E        F        G      CCA      CAC
2         3  ZYX.567        H        I        J      AAA      ABB