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

如何将含XY坐标的单列DataFrame按每两个值拆分为X、Y两列?

解决单列XY交替数据拆分问题

场景说明

你的CSV文件每行存储一个坐标值,按X、Y、X、Y...的顺序排列,用pandas读取后得到仅含一列的DataFrame,需要将其拆分为X和Y两列。

具体实现

1. 读取CSV文件

由于文件无分隔符,每行一个值,读取时需指定无表头:

import pandas as pd

# 读取文件,命名临时列名为temp
df = pd.read_csv('coords.csv', header=None, names=['temp'])

2. 拆分数据为X、Y列

提供两种简洁的实现方式:

方式一:利用索引切片(直观易懂)

通过选取偶数索引行作为X,奇数索引行作为Y:

# 提取X列:0、2、4...位置的行,重置索引避免错位
X_col = df.iloc[::2, 0].reset_index(drop=True)
# 提取Y列:1、3、5...位置的行,重置索引
Y_col = df.iloc[1::2, 0].reset_index(drop=True)

# 合并为目标DataFrame
result_df = pd.DataFrame({'X': X_col, 'Y': Y_col})
方式二:利用numpy重塑数组(更高效)

将单列数据直接重塑为每行两个元素的二维数组,同时兼容奇数行数据的情况:

import numpy as np

# 检查数据行数是否为偶数,避免报错
if len(df) % 2 != 0:
    print("警告:数据行数为奇数,最后一个坐标值将被忽略")
    # 取前偶数个值重塑
    coords_array = df['temp'].values[:-1].reshape(-1, 2)
else:
    coords_array = df['temp'].values.reshape(-1, 2)

# 转成目标DataFrame
result_df = pd.DataFrame(coords_array, columns=['X', 'Y'])

3. 验证结果

执行后result_df的格式即为你需要的:

X      Y
0  792.0  610.0
1  786.0  602.0
2    ...    ...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:55:20