gpt4 book ai didi

Pandas 创建一个包含正确顺序列的 DataFrame

转载 作者:行者123 更新时间:2023-12-04 14:01:45 25 4
gpt4 key购买 nike

我试图通过将我的列传递给构造函数来创建具有正确顺序的 DataFrame:

df = pd.DataFrame(columns={
'seg1_count', 'seg1_mean', 'seg1_std', 'seg1_min', 'seg1_25%', 'seg1_50%',
'seg1_75%', 'seg1_max',
'seg2_count', 'seg2_mean', 'seg2_std', 'seg2_min', 'seg2_25%', 'seg2_50%',
'seg2_75%', 'seg2_max',
'seg3_count', 'seg3_mean', 'seg3_std', 'seg3_min', 'seg3_25%', 'seg3_50%',
'seg3_75%', 'seg3_max',
'seg4_count', 'seg4_mean', 'seg4_std', 'seg4_min', 'seg4_25%', 'seg4_50%',
'seg4_75%', 'seg4_max'
})

但是列出现乱序 df.columns:

Index(['seg4_min', 'seg1_max', 'seg3_std', 'seg3_max', 'seg1_std',
'seg2_count', 'seg1_25%', 'seg3_75%', 'seg2_mean', 'seg2_50%',
'seg4_count', 'seg3_50%', 'seg1_50%', 'seg2_min', 'seg1_count',
'seg2_max', 'seg2_75%', 'seg4_25%', 'seg2_25%', 'seg1_min', 'seg4_50%',
'seg1_mean', 'seg3_count', 'seg4_mean', 'seg4_max', 'seg3_mean',
'seg3_25%', 'seg3_min', 'seg4_std', 'seg1_75%', 'seg4_75%', 'seg2_std'],
dtype='object')

我的代码有什么问题?

最佳答案

这是因为您将列名作为 set 传递并且集合是无序的。将其更改为列表,您应该保留顺序:

df = pd.DataFrame(columns = ['seg1_count', 'seg1_mean', 'seg1_std', 'seg1_min', 'seg1_25%', 'seg1_50%', 'seg1_75%', 'seg1_max',
'seg2_count', 'seg2_mean', 'seg2_std', 'seg2_min', 'seg2_25%', 'seg2_50%', 'seg2_75%', 'seg2_max',
'seg3_count', 'seg3_mean', 'seg3_std', 'seg3_min', 'seg3_25%', 'seg3_50%', 'seg3_75%', 'seg3_max',
'seg4_count', 'seg4_mean', 'seg4_std', 'seg4_min', 'seg4_25%', 'seg4_50%', 'seg4_75%', 'seg4_max'])

更具体地说,并不是 DataFrame 的创建没有保留顺序,而是当您创建集合时顺序丢失了:

columns_set = {'seg1_count', 'seg1_mean', 'seg1_std', 'seg1_min', 'seg1_25%', 'seg1_50%', 'seg1_75%', 'seg1_max',
'seg2_count', 'seg2_mean', 'seg2_std', 'seg2_min', 'seg2_25%', 'seg2_50%', 'seg2_75%', 'seg2_max',
'seg3_count', 'seg3_mean', 'seg3_std', 'seg3_min', 'seg3_25%', 'seg3_50%', 'seg3_75%', 'seg3_max',
'seg4_count', 'seg4_mean', 'seg4_std', 'seg4_min', 'seg4_25%', 'seg4_50%', 'seg4_75%', 'seg4_max'}
print(columns_set)

{'seg1_50%', 'seg2_count', 'seg4_25%', 'seg3_count', 'seg4_max', 'seg2_25%', 'seg3_min', 'seg4_count', 'seg2_std', 'seg4_75%', 'seg3_std', 'seg1_mean', 'seg2_50%', 'seg3_25%', 'seg1_75%', 'seg3_mean', 'seg1_max', 'seg3_75%', 'seg2_max', 'seg1_min', 'seg3_max', 'seg4_50%', 'seg2_75%', 'seg2_min', 'seg1_count', 'seg4_mean', 'seg3_50%', 'seg1_std', 'seg4_min', 'seg1_25%', 'seg2_mean', 'seg4_std'}

columns_list = ['seg1_count', 'seg1_mean', 'seg1_std', 'seg1_min', 'seg1_25%', 'seg1_50%', 'seg1_75%', 'seg1_max',
'seg2_count', 'seg2_mean', 'seg2_std', 'seg2_min', 'seg2_25%', 'seg2_50%', 'seg2_75%', 'seg2_max',
'seg3_count', 'seg3_mean', 'seg3_std', 'seg3_min', 'seg3_25%', 'seg3_50%', 'seg3_75%', 'seg3_max',
'seg4_count', 'seg4_mean', 'seg4_std', 'seg4_min', 'seg4_25%', 'seg4_50%', 'seg4_75%', 'seg4_max']
print(columns_list)

['seg1_count', 'seg1_mean', 'seg1_std', 'seg1_min', 'seg1_25%', 'seg1_50%', 'seg1_75%', 'seg1_max', 'seg2_count', 'seg2_mean', 'seg2_std', 'seg2_min', 'seg2_25%', 'seg2_50%', 'seg2_75%', 'seg2_max', 'seg3_count', 'seg3_mean', 'seg3_std', 'seg3_min', 'seg3_25%', 'seg3_50%', 'seg3_75%', 'seg3_max', 'seg4_count', 'seg4_mean', 'seg4_std', 'seg4_min', 'seg4_25%', 'seg4_50%', 'seg4_75%', 'seg4_max']

关于Pandas 创建一个包含正确顺序列的 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69782684/

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