python - 设置索引的方式有什么区别

标签 python pandas dataframe

设置数据框索引的方式有什么区别?

data = [['A', 5], ['B', 6], ['C', 7]]
df = pd.DataFrame(data=data, columns=['key', 'amount'], index= ['key'])

我收到以下错误:

Shape of passed values is (2, 3), indices imply (2, 1)

如果我执行以下方法,它就可以正常工作:

df2 = pd.DataFrame(data=data, columns=['key', 'amount'])
df2.set_index(['key'], inplace=True)

我设置索引的方式有什么区别?

最佳答案

一方面,pd.Dataframe期望索引是一个数组,并将用作行的索引,例如:

In [17]: data
Out[17]: [['A', 5], ['B', 6], ['C', 7]]

In [18]: df = pd.DataFrame(data=data, index=['a', 'b', 'c'])

In [19]: df
Out[19]: 
   0  1
a  A  5
b  B  6
c  C  7

这不是您想要实现的目标。

另一方面DataFrame.set_index设置一个(或多个)列成为索引,这就是您在本例中想要执行的操作。

关于python - 设置索引的方式有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38737528/

相关文章:

python - 如何为异步 gunicorn worker 使用 eventlet 库

python - smtplib 导入 email.utils 错误

python - 使用 Pandas 的赋值和 Lambda 函数向每行添加 Rand

python - 带有 Pandas 自定义窗口的滚动均值

python - 如何提高DataFrame的应用函数效率?

python - 是否有任何巧妙有效的算法来对字符串的分区空间执行计算?

python - 从特定设备python读取输入

python - Pandas 加入具有不同名称的列

python - 将每一列除以其他列并根据结果创建一个新的数据框

python - 当使用 pandas 连续出现多个组时,如何按组添加数字