You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Pandas DataFrame单列提取两个值并生成独立列表?

拆分Pandas DataFrame中包含坐标的Position列

原始CSV数据

Timestamp, UTC, id, loc, spd
001, 12z, q20, "52, 13", 320
002, 13z, a32, "53, 12", 321
003, 14z, q32, "54, 11", 321
004, 15z, a43, "55, 10", 330

原代码优化点说明

原读取代码有两处可优化:

  1. 手动跳过首行再设置列名的方式冗余,直接利用pd.read_csv默认表头读取更简洁
  2. spd = ["Speed"]是创建字符串列表,而非提取数据列,应改为spd = data["Speed"]

实现拆分的完整代码

import pandas as pd

fname = "data.csv"
# 读取CSV并调整列名匹配需求
data = pd.read_csv(fname).rename(columns={
    "id": "Callsign",
    "loc": "Position",
    "spd": "Speed"
})

# 拆分Position列:按", "分割为两列,转为整数类型
lat_lon = data["Position"].str.split(", ", expand=True)
data["Latitude"] = lat_lon[0].astype(int)
data["Longitude"] = lat_lon[1].astype(int)

# 提取为目标列表
latitude = data["Latitude"].tolist()
longitude = data["Longitude"].tolist()

# 验证输出
print(latitude)  # [52, 53, 54, 55]
print(longitude) # [13, 12, 11, 10]

关键步骤解释

  • str.split(", ", expand=True):将Position列的每个字符串按, 分割,自动生成两个新列,对应纬度和经度的字符串值
  • astype(int):将分割后的字符串转为整数类型,匹配示例中的数值格式
  • tolist():将DataFrame列数据转换为Python原生列表,满足需求

内容的提问来源于stack exchange,提问作者thereiswaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:55:30