【发布时间】:2017-11-15 14:43:03
【问题描述】:
我有两个数据框,它们都有一个Order ID 和一个date。
我想在第一个数据帧df1 中添加一个标志:如果具有相同order id 和date 的记录在数据帧df2 中,则添加一个Y:
[ df1['R'] = np.where(orders['key'].isin(df2['key']), 'Y', 0)]
为了实现这一点,我打算创建一个键,它是 order_id 和 date 的串联,但是当我尝试以下代码时:
df1['key']=df1['Order_ID']+'_'+df1['Date']
我收到此错误
ufunc 'add' did not contain a loop with signature matching types dtype('S21') dtype('S21') dtype('S21')
df1 看起来像这样:
Date | Order_ID | other data points ...
201751 4395674 ...
201762 3487535 ...
这些是数据类型:
df1.info()
RangeIndex: 157443 entries, 0 to 157442
Data columns (total 6 columns):
Order_ID 157429 non-null object
Date 157443 non-null int64
...
dtypes: float64(2), int64(2), object(2)
memory usage: 7.2+ MB
df1['Order_ID'].values
array(['782833030', '782834969', '782836416', ..., '783678018',
'783679806', '783679874'], dtype=object)
【问题讨论】:
标签: python pandas numpy dataframe concatenation