我想创建一个新的数据帧,它从以前的天气数据中随机抽取季节。在
说明问题的代码:
import pandas as pd
import numpy as np
dates = pd.date_range('20070101',periods=3200)
df = pd.DataFrame(data=np.random.randint(0,100,(3200,1)), columns =list('A'))
df['date'] = dates
df = df[['date','A']]
将季节函数应用于日期时间索引
^{pr2}$应用函数
^{3}$为索引创建“年份”列
df['Year'] = df['date'].dt.year
按年份和季节划分的多重指数
df = df.set_index(['Year', 'Season'], inplace=False)
根据季节创建新的数据帧供选择
winters = df.query('Season == "1"')
springs = df.query('Season == "2"')
summers = df.query('Season == "3"')
autumns = df.query('Season == "4"')
我现在想创建一个新的DataFrame
,它从winters
数据帧中随机抽取一个冬天,接着从springs
中随机抽取一个春天,然后从{
编辑:
允许重复季节(应随机抽样),第一个春天不必与第一个冬天属于同一年,这无关紧要。在
编辑2:使用所有季节性数据帧的解决方案:
years = df['date'].dt.year.unique()
dfs = []
for i in range(outputyears):
dfs.append(winters.query("Year == %d" %np.random.choice(years, 1)))
dfs.append(springs.query("Year == %d" %np.random.choice(years, 1)))
dfs.append(summers.query("Year == %d" %np.random.choice(years, 1)))
dfs.append(autumns.query("Year == %d" %np.random.choice(years, 1)))
rnd = pd.concat(dfs)
这可能不是最好的方法,但你可以这样做:
相关问题 更多 >
编程相关推荐