请教一个问题,您在pandas中关于apply、lambda的应用这一文章中,用到了平行的三个数据,如果要用到二个平行数据,一个是下一行数据,如平均气温,平均湿度,和下一行的风速,该如何写代码?
不知道你这个问题是否已经解决, 如果还没有解决的话:对于重新构建的dataframe
df=pd.DataFrame(d)
df['row_mean']=df.apply(lambda x:x.mean(),axis=1)
print(df)
one two three row_mean
a 1 5 9 5.0
b 2 6 10 6.0
c 3 7 11 7.0
d 4 8 12 8.0
针对您的问题,可以按照以下步骤编写代码:
df_weather = pd.read_csv('path/to/weather.csv')
# 只选择需要的列,例如日期、月份、平均气温和平均湿度
df_weather = df_weather[['日期', '月份', '平均气温', '平均湿度']]
avg_weather = df_weather.groupby('月份').agg({'平均气温': 'mean', '平均湿度': 'mean'})
df_wind = pd.read_csv('path/to/wind.csv')
# 只选择需要的列,例如日期和平均风速
df_wind = df_wind[['日期', '平均风速']]
# 将日期提取出来
df_wind['日期'] = pd.to_datetime(df_wind['日期'], format='%Y-%m-%d')
df_wind['月份'] = df_wind['日期'].dt.strftime('%Y-%m')
# 计算每个月份的平均风速
avg_wind = df_wind.groupby('月份').agg({'平均风速': 'mean'})
result = pd.concat([avg_weather, avg_wind], axis=1, sort=True)
以上就是处理该问题的代码和步骤,如果您有任何疑问或者需要更具体的代码,请告诉我。
你为啥非要一起弄,先把风速做一个偏移,再按照同一行处理他不香吗