【问题标题】:Dataframe: Add values of two Daframes数据框:添加两个数据框的值
【发布时间】:2021-07-28 18:57:22
【问题描述】:

我有两个数据框:

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 之类的方法来执行此操作? (我有两个大数据框)

谢谢。

【问题讨论】:

标签: python pandas dataframe merge sum


【解决方案1】:

只需使用add():

>>> df1.add(df2, fill_value=0)

【讨论】:

  • 那行不通。 df2['C'] 返回“nan”而不是“1”。此外,df1 和 df2 的索引长度不同。我认为像 .merge 或 .concat 这样的东西应该可以工作,但我不太确定。
  • @MathMan99 - 您应该在问题中提供适当的示例。无论您的 DataFrame 大小如何,这都应该有效。
【解决方案2】:

在 pandas 中有一个函数

x.add(y, fill_value=0)

import pandas as pd

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

df3 = df1.add(df2, fill_value=0)
Out: 
df3:
            A    B    C
Date
12/2020     1    0    1
13/2020     2    1    1
```

Try this 

【讨论】:

  • 那行不通。 df2['C'] 返回“nan”而不是“1”。此外,df1 和 df2 的索引长度不同。我认为像 .merge 或 .concat 这样的东西应该可以工作,但我不太确定。
  • 你应该考虑合并
【解决方案3】:

试试:

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')

【讨论】:

    猜你喜欢
    • 2021-04-09
    • 2018-01-29
    • 1970-01-01
    • 2021-01-25
    • 2018-12-29
    • 1970-01-01
    • 2018-01-13
    • 2020-05-20
    • 1970-01-01
    相关资源
    最近更新 更多