Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 扩展数据帧中的行_Python_Python 3.x_Pandas_Expand_Reindex - Fatal编程技术网

Python 扩展数据帧中的行

Python 扩展数据帧中的行,python,python-3.x,pandas,expand,reindex,Python,Python 3.x,Pandas,Expand,Reindex,我有以下数据: product Sales_band Hour_id sales prod_1 HIGH 1 200 prod_1 HIGH 3 100 prod_1 HIGH 4 300 prod_1 VERY HIGH 2 100 prod_1 VERY HIGH 5 253 prod_1 VERY HIGH 6 234 要根据小时id值添加行。hou

我有以下数据:

product Sales_band  Hour_id sales
prod_1  HIGH           1    200
prod_1  HIGH           3    100
prod_1  HIGH           4    300
prod_1  VERY HIGH      2    100
prod_1  VERY HIGH      5    253
prod_1  VERY HIGH      6    234
要根据小时id值添加行。hour\u id变量可以取值范围为1到10。因此,上面相同的数据将在缺少小时ID的地方展开。虚拟输出为:(缺少小时id时sales=0

如何使用python dataframe实现这一点。

与以下一起使用:


每个产品和销售带应该有10行吗?是的,这应该是非常理想的最终输出。成功了。将阅读有关set_索引和reindex的更多信息。
product Sales_band  Hour_id sales
prod_1  HIGH           1    200
prod_1  HIGH           2    0
prod_1  HIGH           3    100
prod_1  HIGH           4    300
prod_1  HIGH           5    0
prod_1  HIGH           6    0
prod_1  HIGH           7    0
prod_1  HIGH           8    0
prod_1  HIGH           9    0
prod_1  HIGH           10   0
prod_1  VERY HIGH      1    0
prod_1  VERY HIGH      2    100
prod_1  VERY HIGH      3    0
prod_1  VERY HIGH      4    0
prod_1  VERY HIGH      5    253
prod_1  VERY HIGH      6    234
prod_1  VERY HIGH      7    0
prod_1  VERY HIGH      8    0
prod_1  VERY HIGH      9    0
prod_1  VERY HIGH      10   0
print (df.groupby(['product','Sales_band'])['Hour_id','sales']
         .apply(lambda x: x.set_index('Hour_id').reindex(range(1, 11), fill_value=0))
         .reset_index())

   product Sales_band  Hour_id  sales
0   prod_1       HIGH        1    200
1   prod_1       HIGH        2      0
2   prod_1       HIGH        3    100
3   prod_1       HIGH        4    300
4   prod_1       HIGH        5      0
5   prod_1       HIGH        6      0
6   prod_1       HIGH        7      0
7   prod_1       HIGH        8      0
8   prod_1       HIGH        9      0
9   prod_1       HIGH       10      0
10  prod_1  VERY HIGH        1      0
11  prod_1  VERY HIGH        2    100
12  prod_1  VERY HIGH        3      0
13  prod_1  VERY HIGH        4      0
14  prod_1  VERY HIGH        5    253
15  prod_1  VERY HIGH        6    234
16  prod_1  VERY HIGH        7      0
17  prod_1  VERY HIGH        8      0
18  prod_1  VERY HIGH        9      0
19  prod_1  VERY HIGH       10      0