首页 > 解决方案 > Dataframe:添加两个 Daframe 的值

问题描述

我有两个数据框:

df1:
            A    B
Date
12/2020     1    0
13/2020     1    1


df2:
            A    B    C
Date
12/2020     0    0    1
13/2020     1    0    1

我想将 df1 的值添加到 df2 中以获得以下信息:

df3:
            A    B    C
Date
12/2020     1    0    1
13/2020     2    1    1

我怎样才能使用 pd.join 或 pd.merge 之类的东西来做到这一点?(我有两个大数据框)

谢谢你。

标签: pythonpandasdataframemergesum

解决方案


尝试:

import pandas as pd
import pandasql as psql

df1 = 'Table1' #Insert dataframe
df2 = 'Table2' #Insert dataframe

#Create two dataframes to be joined on final dataframe
t1 = psql.sqldf('''
SELECT
   CONCAT(Date, A, B) AS Full1
   Date
   , A
   , B
FROM df1
''')

t2 = psql.sqldf('''
SELECT
   CONCAT(Date, A, B) Full2
   , Date
   , A
   , B
   , C
FROM df2
''')

#Create Full Dataframe
full_df = psql.df('''
SELECT
  tt.Full1
  , tt.Date
  , tt.A
  , tt.B
  , tt2.C
FROM t1 tt
LEFT JOIN t2 tt2 ON tt.Full1 = tt2.Full2
''')

#Create Final Dataframe
Final = psql.df('''
SELECT
   Date
   , A
   , B
   , C
FROM full_df
''')

#Save final result to csv
Final.to_csv(Index=False, 'file_name.csv')

推荐阅读