繁体   English   中英

如何使用python中的两个循环创建和追加多行

[英]how to create and append multiple rows using two loops in python

我需要创建一个数据框,这样我的输出如下

day hour cal_hr
1   6    106
1   7    107
1   8    108
..
..
1   24   124
..
7   1    701
7   2    702
..
..
7   24   724

我想遍历一天然后一个小时,然后做一个白天和一个小时的连接。 前面的0表示106(例如)

就像是

for i in range(1,8):
    for j in range(6,25):
        df.append(i,j)
 df=pd.dataFrame(df)

可以df.append同时创建两个变量

附加到列表,然后转换为数据框。 这样会更有效率。

df = pd.DataFrame([(i, j, 100*i+j) 
                    for i in range(1, 8) 
                    for j in range(6, 25)], 
                    columns=['day', 'hour', 'cal_hr'])

df.head()
Out[143]: 
   day  hour  cal_hr
0    1     6     106
1    1     7     107
2    1     8     108
3    1     9     109
4    1    10     110

df.tail()
Out[144]: 
     day  hour  cal_hr
128    7    20     720
129    7    21     721
130    7    22     722
131    7    23     723
132    7    24     724

这没有@ayhan的回答那么快或直观,但是我认为这是一种有趣的思考方式。

day = pd.Series(np.arange(1, 8), name='day')
hour = pd.Series(np.arange(6, 25), name='hour')
df = pd.DataFrame(np.add.outer(day * 100, hour), day, hour)
df = df.stack().rename('cal_hr').reset_index()

df.head()

在此处输入图片说明

df.tail()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM