gpt4 book ai didi

pandas - 如何向面板内的所有 DataFrame 添加一列(不要介意使用 for 循环)

转载 作者:行者123 更新时间:2023-12-04 02:38:23 25 4
gpt4 key购买 nike

我试过下面的代码,但是虽然添加了列,但面板轴没有更新。我使用的是 Python 2.7.3 和 Pandas 0.12.0。

import numpy as np
import pandas as pd

p = pd.Panel(np.random.rand(2,4,3),
items=range(2),
major_axis=pd.date_range('2013/11/10',periods=4),
minor_axis=map(lambda x: "col%d" % x, range(3)))

p[0]
col0 col1 col2
2013-11-10 0.942665 0.449846 0.194914
2013-11-11 0.831268 0.031158 0.399326
2013-11-12 0.079028 0.580820 0.459432
2013-11-13 0.858297 0.746162 0.457021

p.minor_axis
Index([u'col0', u'col1', u'col2'], dtype=object)

p[0]['col99'] = 1

p[0]
col0 col1 col2 col99
2013-11-10 0.163177 0.737629 0.784708 1
2013-11-11 0.269936 0.609961 0.997503 1
2013-11-12 0.873156 0.295626 0.533119 1
2013-11-13 0.824352 0.381446 0.613053 1

p.minor_axis
Index([u'col0', u'col1', u'col2'], dtype=object)

这段代码也是如此:

p[0].insert(1, 'col99', p[0].col0)

p[0]
col0 col99 col1 col2
2013-11-10 0.942665 0.942665 0.449846 0.194914
2013-11-11 0.831268 0.831268 0.031158 0.399326
2013-11-12 0.079028 0.079028 0.580820 0.459432
2013-11-13 0.858297 0.858297 0.746162 0.457021

p.minor_axis
Index([u'col0', u'col1', u'col2'], dtype=object)

有什么想法吗?

我认为一个选项是添加另一个 minor_axis 的命令。这存在吗?

谢谢,

JM

最佳答案

检查这个以获得解决方案 Extending a pandas panel frame along the minor axis

要完成您的场景,应该是

x = p.transpose(2,0,1)
x['col99'] = 1
p = x.transpose(1,2,0)

p
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 4 (major_axis) x 4 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 2013-11-10 00:00:00 to 2013-11-13 00:00:00
Minor_axis axis: col0 to col99

关于pandas - 如何向面板内的所有 DataFrame 添加一列(不要介意使用 for 循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432174/

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