Python 如何根据日期创建单独的跟踪列?
我有一个数据帧,df:Python 如何根据日期创建单独的跟踪列?,python,pandas,Python,Pandas,我有一个数据帧,df: df: val date 2012-01-01 4.2 2012-01-02 3.7 2012-01-03 6.2 2012-01-04 1.2 2012-01-05 2.4 2012-01-06 2.3 我要创建的是一个列,该列在指定日期的0处开始,并相应地填充该列(假设本例中的日期为2012-01-04): 我尝试使用np.arange(),但无法集中到所需的行。日期列设置为索引(df) 谢谢。我认为最简单的方法是分两
df:
val
date
2012-01-01 4.2
2012-01-02 3.7
2012-01-03 6.2
2012-01-04 1.2
2012-01-05 2.4
2012-01-06 2.3
我要创建的是一个列,该列在指定日期的0处开始,并相应地填充该列(假设本例中的日期为2012-01-04):
我尝试使用np.arange(),但无法集中到所需的行。日期列设置为索引(df)
谢谢。我认为最简单的方法是分两部分进行:
df['tracking'] = pd.np.arange(len(df))
In [12]: df
Out[12]:
val tracking
date
2012-01-01 4.2 0
2012-01-02 3.7 1
2012-01-03 6.2 2
2012-01-04 1.2 3
2012-01-05 2.4 4
2012-01-06 2.3 5
df['tracking'] -= df.ix['2012-01-04']['tracking']
In [14]: df
Out[14]:
val tracking
date
2012-01-01 4.2 -3
2012-01-02 3.7 -2
2012-01-03 6.2 -1
2012-01-04 1.2 0
2012-01-05 2.4 1
2012-01-06 2.3 2
安迪,谢谢你的帮助。df目前实际上是一个系列。当我做df['tracking']=pd.np.arange(len(df))时,我得到了“跟踪不在本系列中!”我该怎么处理?谢谢。你可以简单地把它变成一个数据帧:
df=pd.DataFrame(df)
:)注意:只调用DataFrames-df可能是一个很好的做法!同意。这真的很有帮助。谢谢。作为实践,在进行连接和合并时,我是否应该将系列转换为一列DF?或者这真的是一个个案基础吗?@user1911092我不确定我是否理解这个问题,你不能只使用数据帧进行连接吗?也许这应该是另一个问题。
df['tracking'] = pd.np.arange(len(df))
In [12]: df
Out[12]:
val tracking
date
2012-01-01 4.2 0
2012-01-02 3.7 1
2012-01-03 6.2 2
2012-01-04 1.2 3
2012-01-05 2.4 4
2012-01-06 2.3 5
df['tracking'] -= df.ix['2012-01-04']['tracking']
In [14]: df
Out[14]:
val tracking
date
2012-01-01 4.2 -3
2012-01-02 3.7 -2
2012-01-03 6.2 -1
2012-01-04 1.2 0
2012-01-05 2.4 1
2012-01-06 2.3 2