Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用相同大小和索引乘以数据帧_Python_Pandas - Fatal编程技术网

Python 使用相同大小和索引乘以数据帧

Python 使用相同大小和索引乘以数据帧,python,pandas,Python,Pandas,我有一个问题,用相同数量的列和行乘以2个数据帧,如下所示。两者都用float64数据类型填充。它输出一个空的数据帧。任何捐款都可以 pos数据帧: 2019-03-01 2019-03-02 2019-03-03 currency

我有一个问题,用相同数量的列和行乘以2个数据帧,如下所示。两者都用float64数据类型填充。它输出一个空的数据帧。任何捐款都可以

pos
数据帧:

          2019-03-01    2019-03-02    2019-03-03    
currency                                                                                                                                  
1WO       2.600000e+02  2.600000e+02  2.600000e+02  
ADH       8.219730e+02  8.219730e+02  8.219730e+02
timestamp      2019-03-01  2019-03-02  2019-03-03  
currency                                                                                                                                                       
1WO            1.8140      1.7230      1.7250      
ADH            0.2425      0.2465      0.2387
c_价格
dataframe:

          2019-03-01    2019-03-02    2019-03-03    
currency                                                                                                                                  
1WO       2.600000e+02  2.600000e+02  2.600000e+02  
ADH       8.219730e+02  8.219730e+02  8.219730e+02
timestamp      2019-03-01  2019-03-02  2019-03-03  
currency                                                                                                                                                       
1WO            1.8140      1.7230      1.7250      
ADH            0.2425      0.2465      0.2387
我的代码:

jpy_bal = pos * c_price 
df.columns.dtype
两个df的输出:

object
2019-03-01    float64
2019-03-02    float64
2019-03-03    float64
2019-03-04    float64
2019-03-05    float64
           ...   
2019-11-01    float64
2019-11-02    float64
2019-11-03    float64
2019-11-04    float64
2019-11-05    float64
Length: 250, dtype: object
df.dtypes
两个df的输出:

object
2019-03-01    float64
2019-03-02    float64
2019-03-03    float64
2019-03-04    float64
2019-03-05    float64
           ...   
2019-11-01    float64
2019-11-02    float64
2019-11-03    float64
2019-11-04    float64
2019-11-05    float64
Length: 250, dtype: object

您可以这样做:

jpy_bal = pd.DataFrame(pos.values * c_price.values, columns=pos.columns, index=pos.index)

我认为列中有不同的数据类型:

print (pos.columns.dtype) 
print (c_price.columns.dtype)
pos.columns = pd.to_datetime(pos.columns)
c_price.columns = pd.to_datetime(c_price.columns)
jpy_bal = pos * c_price
因此,需要将它们转换为相同的数据类型,以下是列中的
DatetimeIndex

print (pos.columns.dtype) 
print (c_price.columns.dtype)
pos.columns = pd.to_datetime(pos.columns)
c_price.columns = pd.to_datetime(c_price.columns)
jpy_bal = pos * c_price
另一个问题应该是不同的索引值-可能是尾随空格:

pos.index = pod.index.str.strip()
c_price.index = c_price.index.str.strip()

另一个想法是通过numpy阵列进行多重化:

jpy_bal = pos * c_price.values 
或:


什么是打印(pos.columns.dtype)打印(c_price.columns.dtype)?@jezrael我想你已经发布了一些东西,但它已经不见了。它帮助了我。它应该在这里。嗯,我脑子里想的一切都在回答…@jezrael我想一开始这也可能是dtype。但请查看我的编辑以进行数据类型检查。这两个df都是相同的。这个输出告诉我问题不是dtype,而是您的解决方案工作时的问题。这里的理由是什么?那么如果使用
pos.columns=pd.to\u datetime(pos.columns)c\u price.columns=pd.to\u datetime(c\u price.columns)
会有帮助吗?