Python 数据帧集索引不接受数组

Python 数据帧集索引不接受数组,python,pandas,dataframe,Python,Pandas,Dataframe,我在python中有一个简单的函数,可以通过编程加载csv,转置许多列,并将其导出回csv ## transpose columns ## def stack_file(input, indexes, delimiter): df = pd.read_csv(input, sep=delimiter) print(df.columns.values) print(indexes) #df.set_index(['Province/State','Country/

我在python中有一个简单的函数,可以通过编程加载csv,转置许多列,并将其导出回csv

## transpose columns  ##
def stack_file(input, indexes, delimiter):
    df = pd.read_csv(input, sep=delimiter)
    print(df.columns.values)
    print(indexes)
    #df.set_index(['Province/State','Country/Region','Lat','Long'], inplace=True)
    df.set_index(indexes, inplace=True)
    df = df.stack()
    df.to_csv(path.join(path.dirname(input),path.basename(input)),sep="\t")
现在您可以在注释行中看到使用测试数组调用的函数-使用该行可以工作。如果尝试传递数组,则会出现以下错误:

ValueError:长度不匹配:应为30870行,收到长度为1的数组

我传递的数组是按以下方式生成的,如果我打印它,它的显示与注释行中的显示完全相同

header_indexes = np.array([])
for x in range(0, header_index_last):
    header_indexes = np.append(header_indexes, column[x])

我试图查看文档,但我真的不明白为什么这不起作用……

这里的问题是传递一个numpy数组来设置索引。把它转换成一个列表,它应该可以工作

因此,替换

df.set_index(indexes, inplace=True)

df.set_index(indexes.tolist(), inplace=True)