将两个pandas字段相乘

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)

谁知道我怎么解决这个问题?

提前致谢.

EdC*_*ica 5

这是因为它是一个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列时,它只是用该标量值重复字符串内容