我有两个大小不同的dataframes,我想用所有值的比较四种不同的列,(两套二)比较在dataframes
基本上我希望看到每一个值的列和行其中df1 ['A'] == df2 ['A'] &其中df1 ['B'] == df2 ['B']并且返回df1 ['C']的值加上df2 ['C']''价值观
import pandas as pd
df1 = pd.DataFrame({"A": [1, 2, 3, 4, 3], "B": [2, 5, 4, 7, 5], "C": [1, 2, 8, 0, 0]})
df2 = pd.DataFrame({"A": [1, 3, 2, 4, 8], "B": [5, 5, 4, 9, 1], "C": [1, 3, 3, 4, 6]})
df1:
A B C
0 1 2 1
1 2 5 2
2 3 4 8
3 4 7 0
4 3 5 0
...
df2:
A B C
0 1 5 1
1 3 4 3
2 2 5 4
3 4 9 4
5 8 1 6
...
in: df1['A'] == df2['A'] & where df1['B'] == df2['B']
df1['D'] = df1['C'] + df2['C']
out: df1:
A B C D
0 1 2 1 nan
1 2 5 2 6
2 3 4 8 11
3 4 7 0 nan
4 3 5 0 nan
我的实际dataframes大得多(数据的120000ish行与值两者“A”的列1至700和“B”从1到300的范围内),所以我知道它可能是一个较长的处理。
我还想提一下,'A'两列中的数字重复了好几次,想起来更像是两组数据,一个列和一个行号专用于每个单元格,并且我需要在两个单元格相等处(两行相等且两列相等)进行数学计算,在这种情况下,我将它们分别命名为'A'和'B',但这是为了避免混淆,我确信我没有做得太好。 – rosskush