如何合并两个csv文件并仅保留所选列的匹配列值,而不使用熊猫保留行组合

时间:2019-05-30 22:51:32

标签: pandas csv dataframe merge

我正在尝试获取两个具有相同列名(有很多)的数据框,并将它们合并到仅两个cols中。尝试执行此操作时(如果在一个col中已经有4行重复,并且两个csv文件的另一列中的行具有相同或不同的值),我将获得每行组合的16行。有没有一种方法可以只保留具有感兴趣的2列的行,而不必获取组合?我对独特性感兴趣的是顺序和费用。

我尝试过合并(按顺序)和

merged = df.merge(df2.assign(item_num=df2.groupby('sequence').cumcount()+1)).fillna("")

sequence              experimental mass  charge retention time
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 2   75.29229826
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 3   75.26851436
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 4   75.66020781
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 2   73.78748056
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 3   73.92431045
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 4   74.57736736
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 5   74.60822451
AAAATETSSVFADPVISK          1762.884274 3   69.39502566
AAAATETSSVFADPVISK          1762.884274 4   69.51926128
AAAATETSSVFADPVISK          1762.884274 2   70.00457572
AAAATETSSVFADPVISK          1762.884274 3   68.91551647

因此,在将这个csv和另一个csv合并之后,我只想获得同时具有序列和电荷的行,即,如果电荷2仅与匹配的行匹配,则第一个序列的输出将与其他cols匹配。 ,

sequence               experimental mass    charge  retention time
AAAASAAEAGIATPGTEDSDDALLK   2314.106474 2   75.29229826

,但exp质量和保留时间cols将具有来自每个数据帧的唯一信息。谢谢,我希望这很清楚

0 个答案:

没有答案