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

使用Pandas处理CSV:将X/Y列字符串数组转数值并拆分行

解决步骤

1. 把字符串格式的数组转成数值列表

X、Y列目前是带[]的字符串,得先把它们解析成真正的数值数组。用ast.literal_eval是最稳妥的方式,不会有执行恶意代码的风险:

import ast
import pandas as pd

# 先读入原数据
df = pd.read_csv("horrible.csv")

# 解析X、Y列的字符串为数值列表
df['X'] = df['X'].apply(ast.literal_eval)
df['Y'] = df['Y'].apply(ast.literal_eval)

2. 将数组拆分成多行

用pandas的explode方法,一次性把X、Y列的列表元素拆成单独行,其他列的数值会自动对应重复:

# 拆分X、Y列,生成新的DataFrame
df_final = df.explode(['X', 'Y'], ignore_index=True)

# 可选:把X、Y转成明确的数值类型(避免仍为object)
df_final['X'] = df_final['X'].astype(int)
df_final['Y'] = df_final['Y'].astype(int)

最终效果

运行完上面的代码后,df_final就是你要的格式:

time   X     Y  status1    status2
0  1659312306212 -53 -1512      -65  18.441406
1  1659312306212 -70 -1656      -65  18.441406
2  1659312421965  25 -1532      -71  18.433594
3  1659312421965 -34 -1520      -71  18.433594

此时X、Y列的类型也会变成int,符合数值类型要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 10:37:18