我想将DataFrame与CSV合并

时间:2018-09-03 14:54:34

标签: python pandas

我需要将1 df与1 CSV合并。 df1仅包含1列(我要更新的产品的ID列表) df2包含2列(所有产品的ID,数量)

df1=pd.read_csv(id_file, header=0, index_col=False)
df2 = pd.DataFrame(data=result_q)
df3=pd.merge(df1, df2)

我想要的是:仅包含csv / df1中的id的数据框与相同ID的df2数量合并

3 个答案:

答案 0 :(得分:1)

如果只希望您在第一个data_frame中拥有的产品,则可以使用以下方法:

df_1
Out[11]: 
   id
0   1
1   2
2   4
3   5

df_2
Out[12]: 
   id prod
0   1    a
1   2    b
2   3    c
3   4    d
4   5    e
5   6    f
6   7    g
7   8    h

df_3 = df_1.merge(df_2,on='id')
df_3
Out[14]: 
   id prod
0   1    a
1   2    b
2   4    d
3   5    e

您需要使用on ='column'参数,因此只会生成具有相同ID的对应行的新df。

答案 1 :(得分:0)

您可以使用new_df= pd.merge(df1,df2, on=['Product_id'])

答案 2 :(得分:0)

我找到了解决方案。我需要重置df2的索引

df1=pd.read_csv(id_file)
df2 = pd.DataFrame(data=result_q).reset_index()

df1['id'] = pd.to_numeric(df1['id'], errors = 'coerce')
df2['id'] = pd.to_numeric(df2['id'], errors = 'coerce')



df3=df1.merge(df2, on='id')

谢谢大家!