Joh*_*uby 6 python dictionary list pandas nsepy
from nsepy import get_history
from datetime import date
import datetime
import pandas as pd
import numpy as np
file = r'C:\Users\Raspberry-Pi\Desktop\Desktop\List.xlsx'
list = pd.read_excel(file)
list = list['SYMBOL']
start = date.today()-datetime.timedelta(days = 10)
end = date.today()
symb = get_history(symbol='INFY',start = start,end = end)
h = symb.tail(3).High.tolist()
l = symb.tail(3).Low.tolist()
print(type(h))
print(type(l))
x = map(lambda a,b:a-b,h,l)
print(type(x))
x = list(x)
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
系列对象不可调用
及其指向x = list(x)线。
list(x)通常意味着x变成一个list物体。它是一个创建列表对象的函数。但在你重新定义的顶部附近list:
list = pd.read_excel(file)
Run Code Online (Sandbox Code Playgroud)
Now 现在list是一个 pandasseries对象(如错误消息所述),并且它不作为函数运行,即它不是callable,它不能与().
为此对象使用不同的名称。foo如果您想不出更好的描述符,请使用愚蠢的名称。
但我认为你可以省略map并使用简单的减法,然后转换为list:
symb = get_history(symbol='INFY',start = start,end = end)
print ((symb.tail(3).High - symb.tail(3).Low).tolist())
Run Code Online (Sandbox Code Playgroud)
也不要使用变量list(python 中的保留字)而不是 L(或其他东西):
L = pd.read_excel(file)
L = L['SYMBOL']
Run Code Online (Sandbox Code Playgroud)
样本:
import pandas as pd
symb = pd.DataFrame({'High':[8,9,7,5,3,4],'Low':[1,2,3,1,0,1]})
print (symb)
High Low
0 8 1
1 9 2
2 7 3
3 5 1
4 3 0
5 4 1
print ((symb.tail(3).High - symb.tail(3).Low).tolist())
[4, 3, 3]
Run Code Online (Sandbox Code Playgroud)
编辑:
我尝试模拟问题:
list = pd.DataFrame({'SYMBOL':['sss old','dd','old']})
print (list)
SYMBOL
0 sss old
1 dd
2 old
list = list['SYMBOL']
print (list)
0 sss old
1 dd
2 old
Name: SYMBOL, dtype: object
print (type(list))
<class 'pandas.core.series.Series'>
x = [1,2,3]
#list is Series, not function
x = list(x)
print (x)
TypeError: 'Series' object is not callable
Run Code Online (Sandbox Code Playgroud)
如果更改list为L,重新打开 python 控制台很重要,因为仍然存在相同的错误。
所以这很完美:
df = pd.DataFrame({'SYMBOL':['sss old','dd','old']})
print (df)
SYMBOL
0 sss old
1 dd
2 old
L = df['SYMBOL']
print (L)
0 sss old
1 dd
2 old
Name: SYMBOL, dtype: object
x = [1,2,3]
x = list(x)
print (x)
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26631 次 |
| 最近记录: |