gpt4 book ai didi

python - Pandas 列名称分配中的大写优先级

转载 作者:行者123 更新时间:2023-11-28 21:51:17 25 4
gpt4 key购买 nike

Pandas 中的列名分配有利于大写而不是小写的原因吗?

例子:

dframe = DataFrame({'city':['Alma','Brian Head', 'Fox Park'],
'altitude':[3158,3000,2762]})

返回一个 DataFrame,其中列的顺序为高度、城市。

鉴于:

dframe = DataFrame({'City':['Alma','Brian Head', 'Fox Park'],
'altitude':[3158,3000,2762]})

返回一个 DataFrame,其列的顺序为城市、海拔高度。

这是 pandas 特定的还是一般的 python 行为?

最佳答案

您实际上并没有问这个问题,但我假设存在关于如何保留原始顺序的隐含问题?如果是这样,可以通过以下三种方式:

1) 相同的基本字典构造器,但包装在 collections.OrderedDict 中(感谢 @shx2 的更正):

from collections import OrderedDict
df1 = pd.DataFrame( OrderedDict([ ('city',['Alma','Brian Head', 'Fox Park']),
('altitude',[3158,3000,2762]) ]))

2) 非字典构造函数,您可以在其中分别指定数据数组和列名称,但是,这本质上需要一个以行为中心的条目,而不是像字典构造函数那样以列为中心:

lst = [['Alma','Brian Head','Fox Park'],
[3158,3000,2762]]
df2 = pd.DataFrame( map(list, zip(*lst)),
columns = ['city','altitude'] )

3) 最简单的方法可能只是在创建数据框后指定顺序(感谢@EdChum 发现了原始帖子中的错误):

df3 = df[['city','altitude']]

测试所有三个结果是否相同:

In [149]: all(df1==df2)
Out[149]: True

In [150]: all(df1==df3)
Out[150]: True

关于python - Pandas 列名称分配中的大写优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com