Python:如何用更简洁的方式为DataFrame多列批量初始化随机整数
Python:如何用更简洁的方式为DataFrame多列批量初始化随机整数
嘿,刚好碰到过类似的场景,给你两个超简洁的Pythonic方案,完美解决你要批量初始化14列随机整数的需求,再也不用复制粘贴十几行重复代码啦!
方法一:循环遍历列名列表(直观易读)
先通过列表推导式生成所有需要的列名,再用一个for循环批量赋值,代码量瞬间减少:
import pandas as pd import numpy as np # 先初始化你的DataFrame(如果还没创建的话) df = pd.DataFrame() # 生成14个fan列的列名:fan1_rpm 到 fan14_rpm fan_column_names = [f'fan{i}_rpm' for i in range(1, 15)] # 循环为每一列赋值随机整数 for col_name in fan_column_names: df[col_name] = np.random.randint(5675, 5725, size=30)
这种方式很直观,如果你之后需要对某几列做特殊调整,也很容易修改循环里的逻辑。
方法二:向量化生成(更高效,更Pythonic)
利用numpy的向量化操作,直接生成对应形状的随机整数数组,再一次性传给pandas DataFrame,这是处理批量数据的最优解,尤其是数据量较大时,速度比循环快很多:
import pandas as pd import numpy as np # 生成列名列表 fan_column_names = [f'fan{i}_rpm' for i in range(1, 15)] # 直接生成30行14列的随机整数矩阵,同时指定列名创建DataFrame df = pd.DataFrame( np.random.randint(5675, 5725, size=(30, 14)), columns=fan_column_names )
一行核心代码就搞定所有列的初始化,完全避免了循环,绝对是最符合Python风格的写法。
不管你选哪种方法,之后如果要调整列数(比如从14列改成20列),只要修改range(1, 15)里的第二个参数就行,灵活性拉满!
备注:内容来源于stack exchange,提问作者Jesh Kundem
相关产品推荐
相关产品推荐

