我有一个操作:{'2017-05-06': [3, 7, 8],'2017-05-07': [3, 9, 10],'2017-05-08': [4]}
我只想再做一次手术:
{'2017-05-06': [15, 11, 10],'2017-05-07': [19, 13, 12],'2017-05-08': [4]}
意思是:
nclean和是2017-05-06
元素总数是18
所以'2017-05-06': [3 -18, 7-18, 8-18] = '2017-05-06': [15, 11, 10]
所有元素数据也是如此。
所以最终的输出是{'2017-05-06': [15, 11, 10],'2017-05-07': [19, 13, 12],'2017-05-08': [4]}
怎么做?你知道吗
注意:我使用的是python3.6.2和pandas0.22.0
迄今为止的代码:
import pandas as pd
dfs = pd.read_excel('ff2.xlsx', sheet_name=None)
dfs1 = {i:x.groupby(pd.to_datetime(x['date']).dt.strftime('%Y-%m-%d'))['duration'].sum() for i, x in dfs.items()}
d = pd.concat(dfs1).groupby(level=1).apply(list).to_dict()
actuald = pd.concat(dfs1).div(80).astype(int)
sum1 = actuald.groupby(level=1).transform('sum')
m = actuald.groupby(level=1).transform('size') > 1
cleand = sum1.sub(actuald).where(m, actuald).groupby(level=1).apply(list).to_dict()
print (cleand)
我想干这个?你知道吗
以一种紧凑(但不知何故效率低下)的方式:
相关问题 更多 >
编程相关推荐