【问题标题】:Dataframe with specific column names cannot dot product with series/dataframe具有特定列名的数据框不能用系列/数据框点积
【发布时间】:2019-11-05 14:33:31
【问题描述】:

当我尝试使用 3*5 数据帧 x like this 点积和 5*1 系列 like this 时,它会给出错误“矩阵未对齐”。在进行点积时,尺寸在这里应该不是问题(3*5 点 5*1 应该会产生 3*1 系列),并且我已经检查了点积的源代码。似乎 Python 试图将数据框的列名see here 与系列的索引结合起来,在我的情况下,显然它们无法对齐,因此尺寸不匹配。我必须将列重命名为类似索引的特征 0,1,2...,以便它们可以与系列的索引对齐。但我想知道是否有更好的方法来做到这一点?如果我在数据框中有 1000 个具有预设名称的列,我是否仍应先尝试将这些名称转换为整数?为什么 Python 会这样处理点积?

【问题讨论】:

  • 你需要使用numpy
  • 使用 df.values 提取 numpy ndarray 并做点乘法

标签: python dataframe dot-product


【解决方案1】:
import pandas as pd
df1 = pd.read_clipboard(sep=',',header=None)
df1
0   1   2   3   4
0   12  0   0   0   0
1   12  0   0   0   0
2   12  0   0   0   0

df2 = pd.read_clipboard(sep=',',header=None)
df2
0
0   1
1   1
2   2
3   1
4   5

import numpy as np

np.dot(df1.values,df2.values)
array([[12],
       [12],
       [12]])

【讨论】:

    猜你喜欢
    • 2021-05-02
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2020-10-10
    相关资源
    最近更新 更多