小编cit*_*ams的帖子

python:使用.iterrows()创建列

我试图使用循环函数来创建一个矩阵,表明产品是否在特定的一周内被看到.

df中的每一行(代表产品)都有一个close_date(产品关闭的日期)和一个week_diff(产品列出的周数).

import pandas
mydata = [{'subid' : 'A', 'Close_date_wk': 25, 'week_diff':3},
          {'subid' : 'B', 'Close_date_wk': 26, 'week_diff':2},
          {'subid' : 'C', 'Close_date_wk': 27, 'week_diff':2},]
df = pandas.DataFrame(mydata)
Run Code Online (Sandbox Code Playgroud)

我的目标是查看每个date_range中为每种产品列出的替代产品数量

我已经设置了以下循环:

for index, row in df.iterrows():
    i = 0
    max_range = row['Close_date_wk']    
    min_range = int(row['Close_date_wk'] - row['week_diff'])
    for i in range(min_range,max_range):
        col_head = 'job_week_'  +  str(i)
        row[col_head] = 1
Run Code Online (Sandbox Code Playgroud)

你能帮忙解释为什么"row [col_head] = 1"行既没有添加列,也没有为该行的该列添加值.

例如,如果:

row A has date range 1,2,3 
row B has date range 2,3  
row C has date range 3,4,5' …
Run Code Online (Sandbox Code Playgroud)

python pandas

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

pandas ×1

python ×1