gpt4 book ai didi

python - 是否应该支持将一个 pandas dataframe 存储在另一个 pandas dataframe 中?我无法再显示此类数据框。这是一个错误吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:31 24 4
gpt4 key购买 nike

我在现有代码中发现使用 pandas 数据框存储其他数据框很有用,这在 pandas 0.10.1 中运行良好,但不再可能使用 pandas 0.12.0 显示此类数据框。然而,仍然可以在此类数据帧中进行存储和检索。这是 Bug 还是我做错了什么?

示例:

在 0.10.1 中工作:

>>> import pandas as pd
>>> pd.__version__
'0.10.1'
>>> df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[3, 4, 5]})
>>> df2 = pd.DataFrame([df1, df1+10])
>>> df2[0][0]
a b
0 1 3
1 2 4
2 3 5
>>> df2[0][1]
a b
0 11 13
1 12 14
2 13 15
>>> df2
0
0 [a, b]
1 [a, b]
>>>

并且不能在 pandas 0.12.0 中工作:

>>> import pandas as pd
>>> pd.__version__
'0.12.0'
>>> df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[3, 4, 5]})
>>> df2 = pd.DataFrame([df1, df1+10])
>>> df2[0][0]
a b
0 1 3
1 2 4
2 3 5
>>> df2[0][1]
a b
0 11 13
1 12 14
2 13 15
>>> df2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/base.py", line 40, in __repr__
return str(self)
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/base.py", line 20, in __str__
return self.__bytes__()
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/base.py", line 32, in __bytes__
return self.__unicode__().encode(encoding, 'replace')
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/frame.py", line 665, in __unicode__
fits_horizontal = self._repr_fits_horizontal_()
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/frame.py", line 646, in _repr_fits_horizontal_
d.to_string(buf=buf)
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/frame.py", line 1556, in to_string
formatter.to_string()
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 294, in to_string
strcols = self._to_str_columns()
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 247, in _to_str_columns
fmt_values = self._format_col(i)
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 398, in _format_col
space=self.col_space)
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 1366, in format_array
return fmt_obj.get_result()
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 1382, in get_result
fmt_values = self._format_strings()
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 1418, in _format_strings
fmt_values.append(' %s' % _format(v))
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 1404, in _format
return '%s' % formatter(x)
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/format.py", line 1394, in <lambda>
formatter = (lambda x: com.pprint_thing(x, escape_chars=('\t', '\r', '\n'))) \
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/common.py", line 2059, in pprint_thing
quote_strings=quote_strings)
File "/home/data/Local/Envs/latest/lib/python2.7/site-packages/pandas/core/common.py", line 1963, in _pprint_seq
r.append(pprint_thing(next(s), _nest_lvl + 1, **kwds))
StopIteration

最佳答案

Note that this has been depracated as of Pandas 0.25.0.

除了评论中提到的错误,您应该考虑使用 Panel当您的直觉或模型引导您创建数据框的数据框时。

pd.Panel({0:df1, 1:df1+10})
Out[2]:
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major_axis) x 2 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 0 to 2
Minor_axis axis: a to b

然后您可以在上面的代码中执行要完成的操作:

p[0]
Out[4]:
a b
0 1 3
1 2 4
2 3 5

p[1]
Out[5]:
a b
0 11 13
1 12 14
2 13 15

但如果需要,您还可以更轻松地访问其他维度操作:

p.minor_xs('a')
Out[6]:
0 1
0 1 11
1 2 12
2 3 13

关于python - 是否应该支持将一个 pandas dataframe 存储在另一个 pandas dataframe 中?我无法再显示此类数据框。这是一个错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19594003/

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