我从这里的pandas DataFrame文档开始:http://pandas.pydata.org/pandas-docs/stable/dsintro.html
我想迭代地使用时间序列计算中的值填充DataFrame.基本上,我想用列A,B和时间戳行初始化DataFrame,全部为0或全部为NaN.
然后,我会添加初始值并检查此数据,计算前一行中的新行,row[A][t] = row[A][t-1]+1或者说左右.
我目前正在使用下面的代码,但我觉得它有点难看,必须有一种方法可以直接使用DataFrame,或者只是更好的方式.注意:我使用的是Python 2.7.
import datetime as dt
import pandas as pd
import scipy as s
if __name__ == '__main__':
base = dt.datetime.today().date()
dates = [ base - dt.timedelta(days=x) for x in range(0,10) ]
dates.sort()
valdict = {}
symbols = ['A','B', 'C']
for symb in symbols:
valdict[symb] = pd.Series( s.zeros( len(dates)), dates )
for thedate in dates:
if thedate > dates[0]:
for symb in valdict:
valdict[symb][thedate] = 1+valdict[symb][thedate - dt.timedelta(days=1)]
print valdict
Run Code Online (Sandbox Code Playgroud) 我有一个4个pandas数据帧的列表,其中包含我想要合并到单个数据帧中的一天的tick数据.我无法理解concat在我的时间戳上的行为.详情如下:
data
[<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 35228 entries, 2013-03-28 00:00:07.089000+02:00 to 2013-03-28 18:59:20.357000+02:00
Data columns:
Price 4040 non-null values
Volume 4040 non-null values
BidQty 35228 non-null values
BidPrice 35228 non-null values
AskPrice 35228 non-null values
AskQty 35228 non-null values
dtypes: float64(6),
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 33088 entries, 2013-04-01 00:03:17.047000+02:00 to 2013-04-01 18:59:58.175000+02:00
Data columns:
Price 3969 non-null values
Volume 3969 non-null values
BidQty 33088 non-null values
BidPrice 33088 non-null values
AskPrice 33088 non-null values
AskQty 33088 non-null values
dtypes: float64(6),
<class 'pandas.core.frame.DataFrame'> …Run Code Online (Sandbox Code Playgroud) list = [1, 2, 3]
print list.append(4) ## WRONG, print does not work, append() returns None
## RIGHT:
list.append(4)
print list ## [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
我正在学习Python,我不确定这个问题是否特定于语言以及如何在Python中实现append.
如果我有一个空的数据帧:
columns = ['Date', 'Name', 'Action','ID']
df = pd.DataFrame(columns=columns)
Run Code Online (Sandbox Code Playgroud)
有没有办法将新行附加到这个新创建的数据框?目前我必须创建一个字典,填充它,然后在最后将字典附加到数据框.有更直接的方式吗?
我正在尝试创建一个继承 pandas DataFrame 的类,并进行一些修改。然而,它并没有按预期工作。
import pandas as pd
class result(pd.DataFrame):
def __init__(self, x):
pd.DataFrame.__init__(self)
j = pd.DataFrame({'a': x})
print(x)
print(j)
self.append(j)
Run Code Online (Sandbox Code Playgroud)
结果:
>>> k = result([2,4])
[2, 4]
a
0 2
1 4
>>> print(k)
Empty result
Columns: []
Index: []
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,不知何故,返回值没有附加j. 为了进行比较,请观察何时j和k未在类中定义:
>>> k = pd.DataFrame()
>>> j = pd.DataFrame({'a': [2,4]})
>>> print(k.append(j))
a
0 2
1 4
Run Code Online (Sandbox Code Playgroud)
是什么导致了这种差异?result如果我想将参数x附加到 中,我应该在其中写什么j?
提前谢谢了!