我完全理解这个问题有几个版本,但似乎没有一个能抓住我问题的核心。我有一个熊猫数据帧,从2015年到现在大约有72000行。我使用的是一种计算方法,它可以为给定的文本集找到最有影响力的单词(tf\u idf)。这个计算不考虑时间,所以我需要将我的主数据帧分解为基于时间的段,理想情况下是每15天和30天(或者n天,实际上不是周/月),然后在每个时间段的数据帧上运行计算,以便查看和绘制随时间推移出现的单词越来越少。你知道吗
我已经能够用以下方法半手动地构建其中的一部分:
def dateRange():
start = input("Enter a start date (MM-DD-YYYY) or '30' for last 30 days: ")
if (start != '30'):
datetime.strptime(start, '%m-%d-%Y')
end = input("Enter a end date (MM-DD-YYYY): ")
datetime.strptime(end, '%m-%d-%Y')
dataTime = data[(data['STATUSDATE'] > start) & (data['STATUSDATE'] <= end)]
else:
dataTime = data[data.STATUSDATE > datetime.now() - pd.to_timedelta('30day')]
return dataTime
dataTime = dateRange()
dataTime2 = dateRange()
def calcForDateRange(dateRangeFrame):
##### LONG FUNCTION####
return word and number
calcForDateRange(dataTime)
calcForDateRange(dataTime2)
这是可行的-但是,我必须手动创建2个日期,这是我作为测试创建的预期日期。如何按增量拆分数据帧并为每个数据帧运行计算?你知道吗
dicts
据称就是这样做的。我试过:
dict_of_dfs = {}
for n, g in data.groupby(data['STATUSDATE']):
dict_of_dfs[n] = g
for frame in dict_of_dfs:
calcForDateRange(frame)
dict结果是2015-01-02: Dataframe
,没有帧。如何将其分解为大约100个数据帧来运行函数?你知道吗
另外,我不完全理解如何具体地按天数来分解['STATUSDATE']
?你知道吗
我想尽量避免迭代,但我知道我可能不得不在这里。你知道吗
谢谢
像这样的怎么样。它创建了一个非空数据帧字典,这些非空数据帧在 期间的开始日期。你知道吗
假设您有这样一个数据帧:
输出:
所以这个数据框有365行,一年中的每一天一行。你知道吗
现在,如果您想将这些数据分组为20天的间隔,并将每组分配给一个dict,您可以执行以下操作
相关问题 更多 >
编程相关推荐