gpt4 book ai didi

python - 如何在保持数据的 C-Contiguos 排列的同时复制数据帧?

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:48 25 4
gpt4 key购买 nike

pandas 数据框 copy方法返回一个数据帧,其数据组织为 F-Contiguos,即使原始数据帧排列为 C-Contiguos。

示例:

In [1]: import numpy
...: import pandas
...: easy_matrix_example = numpy.array([
...: [100, 20200, 20900 ],
...: [200, 80200, 80900 ],
...: [300, 180200, 180900 ],
...: [400, 320200, 320900 ],
...: [500, 500200, 500900 ],
...: ], dtype=numpy.float64)
...: easy_df_example = pandas.DataFrame(easy_matrix_example, columns=["A","B","C"])
...:
...:

In [2]: easy_df_example
Out[2]:
A B C
0 100.0 20200.0 20900.0
1 200.0 80200.0 80900.0
2 300.0 180200.0 180900.0
3 400.0 320200.0 320900.0
4 500.0 500200.0 500900.0

In [5]: easy_df_example.values.flags
Out[5]:
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False

In [6]: df_copy = easy_df_example.copy()

In [7]: df_copy
Out[7]:
A B C
0 100.0 20200.0 20900.0
1 200.0 80200.0 80900.0
2 300.0 180200.0 180900.0
3 400.0 320200.0 320900.0
4 500.0 500200.0 500900.0

In [8]: df_copy.values.flags
Out[8]:
C_CONTIGUOUS : False
F_CONTIGUOUS : True
OWNDATA : False
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False

复制 C-Contiguos 数据帧并获取另一个 C-Contiguous 数据帧的推荐方法是什么?

最佳答案

您可以自己创建一个复制基础值的新对象。

示例:

df = pd.DataFrame(np.random.random(12).reshape(4,3), columns=list('abc'))
df2 = pd.DataFrame(df.values.copy(), columns=df.columns)
df2.values.flags
outputs:
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False

关于python - 如何在保持数据的 C-Contiguos 排列的同时复制数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53439046/

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