如何从pandas DataFrame中按行提取数据转换为指定嵌套元组格式
实现方法
你可以通过pandas内置的行遍历方法结合类型转换完成需求,注意转换前需要先将字段转为字符串类型,避免Month列的前导零丢失。
方法1:最简洁实现(推荐)
使用itertuples方法逐行提取数据,参数配置为不保留索引、不返回命名元组,最后整体转为元组即可:
# 先将两列转为字符串格式,保留前导零 df[["Year", "Month"]] = df[["Year", "Month"]].astype(str) # 按行组装为目标嵌套元组 target_tuple = tuple(df.itertuples(index=False, name=None))
运行后得到的target_tuple就是你需要的(('2003', '06'), ('2003', '09'))格式。
方法2:逐行迭代实现
如果需要自定义行处理逻辑,也可以通过iterrows配合生成器表达式实现:
df[["Year", "Month"]] = df[["Year", "Month"]].astype(str) target_tuple = tuple(tuple(row) for _, row in df[["Year", "Month"]].iterrows())
注意:如果你的数据集在读取时已经将
Year、Month列解析为带前导零的字符串类型,可以跳过astype(str)的类型转换步骤。
内容的提问来源于stack exchange,提问作者user1559128
相关产品推荐
相关产品推荐

