看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
本需求是关于生成 pandas DataFrame 数据的,生成的数据行数不确定,有两列,一列为字母 a 到 z 循环,一列为 1 和 2 循环,可以根据需要指定数据行数。
利用 itertools.cycle
无限循环迭代器,生成数据时用 range() 指定生成数量。
英文字母也不需要我们手动敲,使用 Python 内置模块 string
调用常量生成。
代码如下:
import pandas as pd
import itertools
import string
# 使用无限循环迭代器
col1 = itertools.cycle(string.ascii_lowercase)
col2 = itertools.cycle([1, 2])
n = 999
pd.DataFrame({'col1': [next(col1) for _ in range(n)],
'col2': [next(col2) for _ in range(n)]
})
'''
col1 col2
0 a 1
1 b 2
2 c 1
3 d 2
4 e 1
.. ... ...
994 g 1
995 h 2
996 i 1
997 j 2
998 k 1
[999 rows x 2 columns]
'''
需要注意的是,迭代器是一次性消费,每次消费后,下次从上次消费后的地方开始消费。
需求完成。
(完)
更新时间:Aug. 18, 2024, 3:56 p.m. 标签:pandas python 循环