python 3.5.6和3.7.3之间的迭代熊猫数据帧差异

时间:2019-05-21 14:11:26

标签: python pandas python-3.5 python-3.7

当我在python 3.5.6和3.7.3中迭代数据帧时,我意识到了一个区别,我无法确定它的好坏。


import pandas as pd
class Something(object):
    def __init__(self, data):
        self.data = data

data = {
    'col1': [1, 2, 4],
    'col2': [3, 4, None],
    'col3': ['-', None, 2.4],
    'Time': [0, 0.1, 0.5],
}

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

something = Something(df)

ret = []
for i in something.data:
    ret.append(i)

print(ret)

3.5.6:始终返回:['Time','col1','col2','col3'](看起来熊猫对键进行排序)

3.7.3:始终返回:['col1','col2','col3','Time'](看起来熊猫保留了原始顺序)

我读到,自python 3.6+起,它们保留了字典的插入顺序。 (Are dictionaries ordered in Python 3.6+?

在3.5.6中,大熊猫对钥匙进行了排序, 但是在3.7.3中,它以某种方式考虑了dict的原始顺序(如3.7.3 python所做的那样),因此在更新后我们的某些测试失败了,但我无法确定这种行为是否可以接受。 / p>

您认为这是一个问题吗?

有人可以解释这种行为吗?

0 个答案:

没有答案