gpt4 book ai didi

python - iteritems() DataFrame 输出机制和append() 输出到新的DataFrame

转载 作者:行者123 更新时间:2023-12-01 08:35:11 24 4
gpt4 key购买 nike

好吧,够了。我需要有关 iteritems() 和append() 过程的帮助...

这里我们有一些桶装啤酒和威士忌的时间序列价格数据......

    Beer    Whiskey
Date
1978-12-29 22.60 86.50
1979-01-02 22.68 86.52
1979-01-03 21.86 87.41
1979-01-04 22.32 87.54
1979-01-05 22.55 87.49
1979-01-08 22.31 87.21
1979-01-09 22.40 87.61
1979-01-10 22.07 87.64
1979-01-11 22.07 88.12
1979-01-12 21.76 88.04

我想做的是根据这些数据创建滚动 5 天的返回值。我一直在使用 iteritems() 函数,并且得到了正确的数字。我不明白的第一部分是为什么这个函数会重复输出与 DataFrame 中的列(减去索引)一样多的次数。这是代码和输出...

for value in test.iteritems():
print(((test - test.shift(5))*100)/test.shift(5))

输出

               Beer        Whiskey
Date
1978-12-29 NaN NaN
1979-01-02 NaN NaN
1979-01-03 NaN NaN
1979-01-04 NaN NaN
1979-01-05 NaN NaN
1979-01-08 -1.283186 0.820809
1979-01-09 -1.234568 1.259824
1979-01-10 0.960659 0.263128
1979-01-11 -1.120072 0.662554
1979-01-12 -3.503326 0.628643
Beer Whiskey
Date
1978-12-29 NaN NaN
1979-01-02 NaN NaN
1979-01-03 NaN NaN
1979-01-04 NaN NaN
1979-01-05 NaN NaN
1979-01-08 -1.283186 0.820809
1979-01-09 -1.234568 1.259824
1979-01-10 0.960659 0.263128
1979-01-11 -1.120072 0.662554
1979-01-12 -3.503326 0.628643

知道为什么会重复这个确切的输出吗?

接下来,我创建一个新的数据帧,并要求(非常好!)将此输出 append 到数据帧中。这是代码...

for value in test.iteritems():
df.append(((test - test.shift(5))*100)/test.shift(5))

这是我收到的错误...

<小时/>
TypeError                                 Traceback (most recent call last)
<ipython-input-133-006bdc416056> in <module>()
1 for value in test.iteritems():
----> 2 df.append(((test - test.shift(5))*100)/test.shift(5))

TypeError: append() missing 1 required positional argument: 'other'

我的研究表明,当代码中缺少引用时,就会发生这种“其他”类型错误。我尝试了“键,值”的不同组合,但没有成功。此外,打印功能似乎没有任何问题。如果您有任何想法,请告诉我。提前致谢

最佳答案

pandas.iteritems 迭代名称,列(更准确地说是系列)形式的对,您可以通过查看此示例来检查

for value in test.iteritems():
print(value[0])

此输出

Beer
Whiskey

这就是为什么您会看到同一帧的多个输出。解决您问题的一个简单方法是

returns = 100 * test.diff(5) / test.shift(5)
print(returns)
Beer Whiskey
Date
1978-12-29 NaN NaN
1979-01-02 NaN NaN
1979-01-03 NaN NaN
1979-01-04 NaN NaN
1979-01-05 NaN NaN
1979-01-08 -1.283186 0.820809
1979-01-09 -1.234568 1.259824
1979-01-10 0.960659 0.263128
1979-01-11 -1.120072 0.662554
1979-01-12 -3.503326 0.628643

关于python - iteritems() DataFrame 输出机制和append() 输出到新的DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53759897/

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