使用熊猫创建数据框时,为什么不能定义列名?

问题描述

import pandas as pd

DF = pd.DataFrame(DICTIONARY,index = [r"$\lambda$="+str(i) for i in range(3)],columns = [r"$\xi$="+str(j) for j in range(3)])

有几次,当我有一个字典(不是很大)并尝试将其转换为数据帧时,上面的代码将产生一个字典,每个单元格为NaN。但是下面的代码工作正常。我想知道会有什么不同吗?

DF = pd.DataFrame(DICTIONARY,index = [r"$\lambda$="+str(i) for i in range(3)])
DF.columns = [r"$\xi$="+str(j) for j in range(3)]

解决方法

您的字典键是什么?我猜这些键与您的列不对齐。

在第二个选项中,您让熊猫分配默认的列名称,然后覆盖它们。

当列名对齐时,类似下面的代码的东西可以工作-但是在这种情况下,显式定义columns参数不会增加任何值,因为dict键已经提供了名称。

DF = pd.DataFrame({1:1,2:2,3:3},index = [r"$\lambda$="+str(i) for i in range(3)],columns = [j+1 for j in range(3)])