python - Python For循环创建数据框
问题描述
嗨,我对 Python 相当陌生,更像是一个 R 人。但我需要使用 python 来完成一项任务。
但是,我遇到了一种情况,我需要按日期将数据子集到不同的 dataFrame 中。“将来不完全是 3,因此想要创建一个循环来执行此操作”我想潜在地创建 3 个数据帧,例如
df_train_30 which contains start day 0 - 30
df_train_60 which contains start day 30 - 60
df_train_90 which contains start day 60 - 90
但不知道如何实现这一目标......请帮助。
下面代码中的想法
today = pd.to_datetime('now')
df_train['START_DATE'] = pd.to_datetime(df_train['START_DATE'])
previous_day_del = 0
for day_del in (30,60,90):
**'df_train_' + str(day_del)** = df_train[(df_train['START_DATE']>= today - timedelta(days=day_del)) & (df_train['START_DATE']< today - timedelta(days=previous_day_del))]
previous_day_del = day_del
解决方案
您可能可以将它存储到字典中 - 它更容易管理而不是动态生成的变量。字典更像是一个具有键值对的对象,其值几乎可以是任何类型,甚至包括数据帧。这是您可以查看的有关 Python 字典的快速指南。
在您的示例中,您可能会继续这样做:
today = pd.to_datetime('now')
df_train['START_DATE'] = pd.to_datetime(df_train['START_DATE'])
previous_day_del = 0
# Creating an empty dictionary here called dict_train
dict_train = {}
for day_del in (30,60,90):
dict_train[day_del] = df_train[(df_train['START_DATE']>= today -timedelta(days=day_del)) & (df_train['START_DATE']< today - timedelta(days=previous_day_del))]
previous_day_del = day_del
希望这会有所帮助,干杯!:)
推荐阅读
- c++ - 为 std::bind 创建模板包装器
- azure - 使用 Ansible Playbook 安装 AKS 时出现错误 Unsupported kubernetes version
- javascript - div向右动画后,左侧的jQuery动画不会触发
- flutter - 如何在 ListView.separated 中的几个列表项之间放置分隔符
- reactjs - 在 React-Meteor 中使用 Vazco Uniforms,无法获取 SelectField onChange 的值
- c++ - 如何创建一个 function_list<> 类来保存具有相同模板语法的 std::function<>s 向量?
- python - 如何将图像的 id 附加到列表中?
- scala - 如何在模式匹配中分配变量
- java - Dataweave - 替换对象中字段的值
- mysql - 如何使用 hibernate 连接外部 mySQL 数据库