如何合并以下数据集:
df = A
date abc
1 a
1 b
1 c
2 d
2 dd
3 ee
3 df
df = B
date ZZZ
1 a
2 b
3 c
我希望得到像这样的人:
date abc ZZZ
1 a a
1 b a
1 c a
2 d b
2 dd b
3 ee c
3 df c
我试过这段代码:
aa = pd.merge(A, B, left_on="date", right_on="date", how="left", validate="m:1")
但我有以下错误:
TypeError: merge() got an unexpected keyword argument 'validate'
我使用(conda update pandas)更新我的pandas,但仍然得到相同的错误
请告诉我这个问题。
答案 0 :(得分:2)
根据df.merge
docs validate
在版本0.21.0中添加。您使用的是旧版本,因此您应该更新正在使用的pandas版本。
答案 1 :(得分:1)
作为@DeepSpace mentioned,您可能需要升级您的pandas。
要复制早期版本中的检查,您可以执行以下操作:
import pandas as pd
df1 = pd.DataFrame(index=['a', 'a', 'b', 'b', 'c'])
df2 = pd.DataFrame(index=['a', 'b', 'c'])
x = [i for i in df2.index if i in set(df1.index)]
len(x) == len(set(x)) # True
df1 = pd.DataFrame(index=['a', 'a', 'b', 'b', 'c'])
df2 = pd.DataFrame(index=['a', 'b', 'c', 'a'])
y = [i for i in df2.index if i in set(df1.index)]
len(y) == len(set(y)) # False