转置Pandas DataFrame及计算点积时遇到的错误
Pandas DataFrame转置与点积计算报错解决
错误原因
你代码里的核心问题是转置操作没真正执行:df.transpose只是引用了DataFrame的转置方法,没加括号调用,导致df_transposed是个方法对象,而非实际的转置后DataFrame。dot方法没法对方法对象做点积计算,所以抛出TypeError。
修正方法
把转置代码改成以下两种方式之一,确保得到实际的转置后DataFrame:
- 调用转置方法:
df.transpose() - 使用Pandas简写语法:
df.T(日常开发更常用)
修正后的完整代码
import pandas as pd import numpy as np # Original dataframe df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) print("Original DataFrame:") print(df) # 修正:调用转置方法(两种方式任选其一) df_transposed = df.transpose() # 或者用简写:df_transposed = df.T print("\nTransposed DataFrame:") print(df_transposed) df_product = df.dot(df_transposed) print("\nDot Product Result:") print(df_product)
运行结果
Original DataFrame: A B C 0 1 4 7 1 2 5 8 2 3 6 9 Transposed DataFrame: 0 1 2 A 1 2 3 B 4 5 6 C 7 8 9 Dot Product Result: 0 1 2 0 66 78 90 1 78 93 108 2 90 108 126
内容的提问来源于stack exchange,提问作者Kr1sz
相关产品推荐
相关产品推荐

