【问题标题】:Python Dataframe simple average error: TypeError: Expected tuple, got strPython Dataframe 简单平均错误:TypeError: Expected tuple, got str
【发布时间】:2020-05-12 05:24:18
【问题描述】:

我正在执行一个非常简单的操作,我想将数据框中的值更改为前面值的平均值。

period = 14    
u[u.index[period-1]] = np.mean( u[:period] )

但是这会返回一个以

结尾的冗长错误
File "pandas\_libs\lib.pyx", line 2399, in pandas._libs.lib.tuples_to_object_array

TypeError: Expected tuple, got str

我是个新手..

非常感谢您。

[编辑]

数据样本:

Instrument  S&PCOMP
Field   
Dates   
12/05/2015  0
13/05/2015  0
14/05/2015  22.62
15/05/2015  1.63
18/05/2015  6.47
19/05/2015  0
20/05/2015  0
21/05/2015  4.97
22/05/2015  0
25/05/2015  0
26/05/2015  0
27/05/2015  19.28
28/05/2015  0

预期输出:

Instrument  S&PCOMP
Field   
Dates   
12/05/2015  0
13/05/2015  0
14/05/2015  22.62
15/05/2015  1.63
18/05/2015  6.47
19/05/2015  0
20/05/2015  0
21/05/2015  4.97
22/05/2015  0
25/05/2015  0
26/05/2015  0
27/05/2015  19.28
28/05/2015  4.580833333

【问题讨论】:

  • 你能创建数据样本吗?
  • 熊猫数据框上有一个内置的mean() 函数,如果有帮助的话。 pandas.pydata.org/pandas-docs/stable/reference/api/…
  • @jezrael:见上文。伊万,我正在使用 mean()
  • 谢谢,你能从样本数据中创建预期的输出吗?
  • @Tikhon - 你能测试u.iloc[period-1] = u.iloc[:period].mean() 吗?只有 13 行数据,所以对我来说 period = 14 样本数据不起作用(用样本数据测试周期 = 13)

标签: python pandas tuples typeerror


【解决方案1】:

您可以通过DataFrame.iloc按位置选择行,然后也可以使用pandas的@​​987654322@方法:

u.iloc[period-1] = u.iloc[:period].mean()

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 2019-04-08
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 2018-10-09
    • 2011-11-06
    相关资源
    最近更新 更多