python - 为什么 pandas 中的 DataFrame 在字符串之前排列数字?

标签 python pandas

data1 = {'key':['b','b','a','c','a','a','b'], 'data':range(7)}
df1 = pd.DataFrame(data1)

它被排列为数据,然后是键。为什么不先按key排列,再按data排列?

我需要指定列吗?

最佳答案

data1 是一个字典,因此元素存储在 arbitrary order 中。现在,您每次都以特定顺序看到它的原因是因为 pandas frame constructorsort the dictionary keys如果没有明确的列参数。

构造函数简单地使用:

>>> sorted(['key', 'data'])
['data', 'key']

因此,您每次都会得到相同的列顺序。您可以(必须)显式给出 columns 参数,以按照您想要的顺序存储它们。

>>> pd.DataFrame(data1, columns=['key', 'data'])
  key  data
0   b     0
1   b     1
2   a     2
3   c     3
4   a     4
5   a     5
6   b     6

关于python - 为什么 pandas 中的 DataFrame 在字符串之前排列数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45686028/

相关文章:

python - 如何用Python调用这个ATM机器游戏中的父类(super class)?

python - s3fs 自定义端点 url

python - 使用 PIL 查找图像中透明区域的位置

Python/Pandas 遍历列

python - matplotlib pyplot 不显示轴刻度或标签

python - 从数据框行中的列表(包含标签)中获取唯一值

python - 将数据帧行转换为字典

python - TsTables : AttributeError: module 'pandas.tseries' has no attribute 'index'

python - 如何在 pandas 数据框的顶部添加一行?

python - 根据条件设置 Pandas 数据框的值