Python报错TypeError: cannot concatenate object of type ‘<class ‘numpy.ndarray‘>‘解决方法

目录

错误场景

解决方法


错误场景

使用pandas库的append方法,将numpy.ndarray类型的数据追加到dataframe中的时候报错:

TypeError: cannot concatenate object of type ''; only Series and DataFrame objs are valid

出问题的代码简化如下,报错发生在result_df = result_df._append(row_data)这一行。

import pandas as pd

if __name__ == '__main__':

    # 读取指定的excel文件
    df = pd.read_excel(r"D:\Test\src1.xlsm",header=None)
    # 获取第5行的值
    row_data = df.loc[4].values[0:-1]
    # 创建一个空的dataframe
    result_df = pd.DataFrame()
    # 将row_data追加到df中
    result_df = result_df._append(row_data)

pandas的loc方法获取到的row_data是numpy.ndarray类型。

Dataframe中可以追加Dataframe/Series类型,但不支持追加numpy.ndarray类型的数据。

解决方法

将numpy.ndarray先转换成Dataframe类型,再添加到Dataframe中。

添加row_data = pd.DataFrame(row_data)这一行即可。

修改后的完整代码如下。

    # 读取指定的excel文件
    df = pd.read_excel(r"D:\Test\src1.xlsm",header=None)
    # 获取第5行的值
    row_data = df.loc[4].values[0:-1]
    print(type(row_data))
    # 将row_data转换成Dataframe类型
    row_data = pd.DataFrame(row_data)
    print(type(row_data))

    # 创建一个空的dataframe
    result_df = pd.DataFrame()
    # 将row_data追加到df中
    result_df = result_df._append(row_data)

print输出type(row_data),可以看到row_data类型发生了改变:

Python报错TypeError: cannot concatenate object of type ‘<class ‘numpy.ndarray‘>‘解决方法_第1张图片

通过这种方式解决了append追加数据时的问题。

你可能感兴趣的:(Python学习,python,pandas,开发语言,numpy)