我有一个数据框,它有4年的数据,看起来像这样:
我想做的是将2021年的值替换为同一时间框架中前3年值的权重。所以在这个例子中,只将2021年第1周到第3周的值替换为:45%*2020 30%*2019 25%*2018
这将为我们提供2021年的以下信息:
我们得到了2021周3的值:0.4532×0.330×0.25×26=14.4 9 6.5=29.9
此外,我希望能够跳过几年,如果我想,2021可以基于2020, 2019,和2016,例如。
您可以创建自定义函数,因为听起来您需要可自定义的参数。没有一种特定的熊猫方法可以做到这一点:
def f(df=df, years=[], weeks=[], weights=[], current_year=2021):
df = df[df['Week'].isin(weeks)]
series_weights = df['Year'].map({year : weight for year, weight in zip(years, weights)})
df['Value'] = df['Value'] * series_weights
df = df.assign(Year=current_year).groupby(['Year', 'Week'], as_index=False)['Value'].sum()
return df
f(years=[2018,2019,2020], weeks=[1,2,3], weights=[0.25,0.3,0.45])
Out[1]:
Year Week Value
0 2021 1 25.60
1 2021 2 32.05
2 2021 3 29.90
问题内容: 我有一个带有列()的表,格式为日期时间,在我的Select中有一个年份()的变量输入,格式为int。 如何使用变量输入替换表中日期中的年份,并以datetime格式(在Select中)返回结果? 我尝试了以下操作,但是返回错误的日期/年份: 例子: 在这种情况下,我的结果应该是: 问题答案: 使用DATEADD函数的解决方案: 这是一个比当前年份小的年份的示例:
我使用以下代码创建了以下: 但循环什么也不做。我感觉这与变量赋值有关。但我想不出另一种办法来完成这件事。 我试着在每次循环迭代之后分配一个变量,考虑到我在这篇文章中看到的答案。
用其他dataframe的列值替换dataframe的一列中的nan值时出现问题。下面是一个测试示例: 我想用其他dataframe中的特定值替换列名中的Nan值(如果其中有一些Nan值,则不是其他列),例如此dataframe中的Name2值: 我想得到的是: 这是此示例的测试代码: 然后我尝试了这三种方法,但都不起作用——我的数据帧始终保持Nan值。 你能告诉我哪里出错了吗?
问题内容: 我有一个这样的dataFrame,我想每60分钟进行一次分组,然后从06:30开始分组。 我在用: 我得到这个分组: 但我正在寻找这个结果: 我如何告诉该功能以6小时30分开始以一小时为间隔进行分组? 如果 .groupby(pd.TimeGrouper(freq =‘60Min’)) 无法完成此 操作 ,最好的方法是怎么做? 致敬并非常感谢 问题答案: 使用会同中的参数。 指定将使时
我想用树莓派实时捕捉带有时间戳的视频帧。视频由USB摄像头使用python代码中的ffmpeg()函数制作。如何保存当前由USB摄像头在树莓派中制作的视频帧? 我尝试使用opencv的三个函数。cv2。VideoCapture可检测视频,保存帧。以下是代码,为简洁起见,未提及包含的库。 该代码保存了以前由网络摄像头制作的视频帧。它不保存当前由网络摄像头录制的视频帧。