【发布时间】:2022-01-26 01:39:21
【问题描述】:
我从 sql 查询创建了一个数据框,该查询为直方图生成 bin 数据:最小值、最大值和 bin 大小。我想使用这些数据创建一个 bin 列表,然后我可以将其合并回原始数据框
Here is a sample of my query output
我的查询为每个模型生成一行。然后我想创建一个从 initial_bin (0) 开始的列表,然后按 bin_size (7) 递增,直到达到最大值 (435)。结果列将被称为 bin_seq。
下面的代码显示了我目前所处的位置。我可以使用 for 循环和 range() 函数生成具有所需序列的列表,但不确定如何将其合并回数据框。
'''
import pyodbc
import pandas as pd
bin_sql = """
select 'test_model_1' model, 0 initial_bin , 435 maximum , 7 bin_size
from analytics.model_data
"""
bin_data = pd.read_sql(bin_sql,conn)
bin_max = int(bin_data["maximum"]+bin_data["bin_size"])
bin_size = int(bin_data["bin_size"])
bin_start = int(bin_data["initial_bin"])
for i in range(bin_start, bin_max, bin_size):
print(i, end=', ')
'''
Here is the image of the desired output
另外一个问题是我的最终输出将有多个模型,每个模型都有自己的最大值和 bin 大小。所以我需要能够为每个模型生成一个自定义序列,然后将序列连接回原始模型名称。
【问题讨论】:
-
请使用
bin_data示例更新您的帖子,例如bin_data.head()。 -
@Corralien -- 刚刚更新
标签: python pandas list for-loop sequence