如何将Python DataFrame每行指定字段值存入不同变量?
解决方案:动态存储DataFrame行数据到可迭代结构
由于DataFrame行数不固定,不建议生成独立变量(动态创建变量会让代码难以维护,不符合Python编程规范),推荐用列表或字典来批量存储每行的字段值,以下是具体实现:
方法1:用列表存储每行字段值
遍历DataFrame的每一行,将tradingsymbol、overnight_quantity、average_price打包成元组,存入一个列表中,后续可直接遍历列表处理数据。
import pandas as pd # 假设你的DataFrame名为df data_list = [] # 遍历每一行提取数据 for _, row in df.iterrows(): symbol = row['tradingsymbol'] quantity = row['overnight_quantity'] price = row['average_price'] data_list.append((symbol, quantity, price)) # 后续使用示例:遍历列表执行业务逻辑 for symbol, quantity, price in data_list: # 这里替换成你的实际代码 print(f"标的:{symbol},隔夜持仓量:{quantity},成交均价:{price}")
方法2:用字典按标的映射数据
如果需要通过tradingsymbol快速查询对应的持仓量和均价,可以用字典存储,以标的名为键,持仓量和均价组成的子字典为值。
data_dict = {} for _, row in df.iterrows(): symbol = row['tradingsymbol'] data_dict[symbol] = { 'overnight_quantity': row['overnight_quantity'], 'average_price': row['average_price'] } # 后续使用示例:通过标的名直接获取数据 target_symbol = "XXX" if target_symbol in data_dict: quantity = data_dict[target_symbol]['overnight_quantity'] price = data_dict[target_symbol]['average_price'] # 执行你的业务逻辑
为什么不推荐动态生成独立变量?
如果用globals()或locals()动态创建symbol_1、quantity_1这类变量,会导致代码结构混乱,后续难以追踪变量状态,行数变化时还要额外处理变量名生成逻辑,完全没有必要。用列表或字典这类可迭代结构,既能适配行数变化,又能让代码更易读、易维护。
内容的提问来源于stack exchange,提问作者umesh
相关产品推荐
相关产品推荐

