合并两列数据框时解决错误

时间:2019-09-03 23:45:17

标签: pandas merge

我试图在两列(日期和符号)上合并两个数据帧(D1和R1),但是我收到此错误"You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat"

我一直在使用pd.merge,并且尝试了不同的dtypes。我不想将它们串联起来,因为我只想在R1的右侧添加D1。

D2 = pd.merge(D1, R2, on=['Date','Symbol'])

D1.dtypes()
Date              object
Symbol            object
High             float64
Low              float64
Open             float64
Close            float64
Volume           float64
Adj Close        float64
pct_change_1D    float64
Symbol_above      object
NE                  bool

R1.dtypes()
gvkey             int64
datadate          int64
fyearq            int64
fqtr              int64
indfmt           object
consol           object
popsrc           object
datafmt          object
tic              object
curcdq           object
datacqtr         object
datafqtr         object
rdq               int64
costat           object
ipodate         float64
Report_Today      int64
Symbol           object
Date              int64

理想情况下,不在R1索引(gvkey-Report_Today)中的列将在D1中的列的右侧。

感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:2)

在您对DataFrames的描述中,我们可以看到,
在D1 DataFrame列中,日期类型为“对象”
在R1 DataFrame列中,日期类型为“ int64”。

使这些列的类型相同,一切都会好的。