Him*_*pta 4 python dataframe pandas
我有一个包含事务列表的数据框,我想获取exec_price字段并将其与size字段相乘,以便我可以获得总成本.
所以,我想添加一个新字段:cost = exec_price*size
date security action size ask_price exec_price \
order_id
188 2016-10-24 10:04:44 AAPL buy 5 116.599998 117.44
189 2016-10-24 10:04:44 NFLX buy 5 127.5 128.4
190 2016-10-24 10:04:44 AMD buy 5 6.52 6.65
status
order_id
188 filled
189 filled
190 filled
Run Code Online (Sandbox Code Playgroud)
当我尝试多重时,使用:
transactions['cost'] = transactions['exec_price'] * transactions['size']
Run Code Online (Sandbox Code Playgroud)
我明白了:
date security action size ask_price exec_price \
order_id
188 2016-10-24 10:04:44 AAPL buy 5 116.599998 117.44
189 2016-10-24 10:04:44 NFLX buy 5 127.5 128.4
190 2016-10-24 10:04:44 AMD buy 5 6.52 6.65
status cost
order_id
188 filled 117.44117.44117.44117.44117.44
189 filled 128.4128.4128.4128.4128.4
190 filled 6.656.656.656.656.65
Run Code Online (Sandbox Code Playgroud)
谁知道我怎么解决这个问题?
提前致谢.
这是因为它是一个str浮动使用的变化astype:
transactions['exec_price'] = transactions['exec_price'].astype(float)
Run Code Online (Sandbox Code Playgroud)
或者更安全地使用to_numeric来处理任何duff值:
transactions['exec_price'] = pd.to_numeric(transactions['exec_price'], errors='coerce')
Run Code Online (Sandbox Code Playgroud)
当你乘以一个str列时,它只是用该标量值重复字符串内容