我从excel工作簿导入了两个pandas数据帧。项目名称为第一列,Months为列标题。它们大小相同,并且具有相同的列标题/行索引名称。我想将这两个数据帧相乘,最后在第一列和标题中的相同月份中使用相同的项目名称,但是单元格中数组的乘积。
我尝试过:df * df1
,df.values * df1.values
和df.mul(df1)
每次我得到
TypeError:不能将序列乘以'str'
类型的非int
我的数据的缩写示例是:
df:
SKU 2017-01-31 2017-02-28
0 FUJI Film 0.761031 0.838831
DF1:
SKU 2017-01-31 2017-02-28
0 FUJI FILM 8557.12 7240.64
我使用以下内容导入了文件:
df = pd.read_excel('C:/desktop/Arrays.xlsx',sheet_name=0)
df1 = pd.read_excel('C:/desktop/Arrays.xlsx',sheet_name=1)
我理想情况下最终会得到一个df3,它是两个数组的乘积,而第一列和标题保持不变。
我感谢任何帮助。
答案 0 :(得分:1)
您可以使用select_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