Python 将数据帧与列名和索引名相乘

Python 将数据帧与列名和索引名相乘,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个从excel工作簿导入的数据框。第一列中的项目名称为,列标题为月份。它们大小相同,列标题/行索引名称相同。我希望将这两个数据帧相乘,并在第一列中使用相同的项目名称,在标题中使用相同的月份,但使用单元格中数组的乘积 我尝试过:df*df1、df.values*df1.values和df.muldf1 每次我得到 TypeError:无法将序列与'str'类型的非int相乘 我的数据的一个简短示例是: df: df1: 我导入了具有以下内容的文件: df = pd.read_excel('C

我有两个从excel工作簿导入的数据框。第一列中的项目名称为,列标题为月份。它们大小相同,列标题/行索引名称相同。我希望将这两个数据帧相乘,并在第一列中使用相同的项目名称,在标题中使用相同的月份,但使用单元格中数组的乘积

我尝试过:df*df1、df.values*df1.values和df.muldf1 每次我得到

TypeError:无法将序列与'str'类型的非int相乘

我的数据的一个简短示例是:

df:

df1:

我导入了具有以下内容的文件:

df = pd.read_excel('C:/desktop/Arrays.xlsx',sheet_name=0)
df1 = pd.read_excel('C:/desktop/Arrays.xlsx',sheet_name=1)
理想情况下,我希望最终得到一个df3,它是两个数组的乘积,而第一列和头保持不变

非常感谢您的帮助。

您可以使用select\u dtypes排除非数字类型列,然后使用mul和update来获得结果并相应地更新值

df.update(df.select_dtypes(exclude='object').mul(df1.select_dtypes(exclude='object')))
df
Out[891]: 
        SKU   2017-01-31   2017-02-28
0  FUJIFilm  6512.233591  6073.673292
df = pd.read_excel('C:/desktop/Arrays.xlsx',sheet_name=0)
df1 = pd.read_excel('C:/desktop/Arrays.xlsx',sheet_name=1)
df.update(df.select_dtypes(exclude='object').mul(df1.select_dtypes(exclude='object')))
df
Out[891]: 
        SKU   2017-01-31   2017-02-28
0  FUJIFilm  6512.233591  6073.673292