我想用datetimestamp(最多几分钟)构建一个数据框作为索引,并在我获取每个新列的数据时不断添加列。例如,对于Col-A,我按天,小时和分钟从另一个数据集聚合到值' k'。我想插入这个值' k'进入右边的数据框'行索引。我面临的问题是当前行标识符来自日期,小时,分钟的groupby对象。不确定如何连接'这3个成为一个很好的时间序型。
这就是我目前所拥有的(我的groupby对象的输出):
currGroupedData = cData.groupby(['DATE', 'HOUR', 'MINUTE'])
numUniqValuesPerDayHrMin = currGroupedData['UID'].nunique()
print numUniqValuesPerDayHrMin
Computing Values for A:
DATE HOUR MINUTE
2015-08-15 6 38 65
Name: UID, dtype: int64
要形成一个新的数据帧以容纳多个列(A,B,..,Z),我这样做:
index = pd.date_range('2015-10-05 10:00:00', '2015-11-10 10:00:00', freq='1min')
df = pd.DataFrame(index=index)
现在,我想以某种方式'取值65并填充到我的数据框中。我该怎么做呢?我必须以某种方式转换"日期,小时,分钟"将groupby对象形成一个timeseries obj ... ???
此外,我将在当天的许多分钟内获得Col-A的一系列值。我希望,在一次性中,用这些值填充整个列,并用“' 0”填充其余部分。然后,继续处理/填充下一列。
我可以这样做:
str = '2015-10-10 06:10:00'
str
Out[362]: '2015-10-10 06:10:00'
pd.to_datetime(str, format='%Y-%m-%d %H:%M:%S', coerce=True)
Out[363]: Timestamp('2015-10-10 06:10:00')
row_idx = pd.to_datetime(str, format='%Y-%m-%d %H:%M:%S', coerce=True)
type(row_idx)
Out[365]: pandas.tslib.Timestamp
data = pd.DataFrame({'Col-A': 65}, index = pd.Series(row_idx))
df.add(data)
有什么想法吗?
答案 0 :(得分:0)
你几乎在你的代码中弄明白了。 一些变化可以完成这个诀窍。
|
import pandas as pd
index = pd.date_range('2015-10-05 10:00:00', '2015-11-10 10:00:00', freq='1min')
df = pd.DataFrame(index=index)
# initialize the column with all values set to 0.
df['first_column'] = 0
# format the target time into a timestamp
target_time = pd.to_datetime('2015-10-15 6:38')
# set the value for the target time to 65
df['first_column'][ target_time]=65
# output the value at the target time.
df['first_column'][ target_time]