【发布时间】:2021-08-20 19:11:16
【问题描述】:
我有一个大型 .csv 数据库,其列名 VELOCITY 包含 3D 速度矢量。
VELOCITY 列的每个元素的格式为:'(v1, v2, v3)'
读取我使用的数据:
df = pd.read_csv('database.csv')
df = pd.DataFrame(df)
现在,我尝试定义一个velocity_array,其中每个元素都是3D 速度向量。
velocity_array = np.asarray(df['VELOCITY'])
我得到这样的东西:
['(a1, a2, a3)',
'(b1, b2, b3)',
'(c1, c2, c3)',
.
.
.
'(z1, z2, z3)']
这不是我需要的。我需要有一组 3D 速度数组。像这样的:
[[a1, a2, a3],
[b1, b2, b3],
[c1, c2, c3],
.
.
.
[z1, z2, z3]]
这样我就可以通过调用 velocity_array[i] 来恢复 3D 速度数组。
感谢任何帮助,谢谢!
#=====
只需添加(按要求):
df.head() 看起来像这样:
SC_VELOCITY EVENT_ID
0 (-7143.645, -825.2191, -2463.361) 388161
1 (-7143.645, -825.2191, -2463.361) 400028
2 (-7087.896, -1058.8871, -2533.3374) 415847
3 (-7024.463, -1291.3812, -2600.547) 527126
4 (-6953.418, -1522.4622, -2664.9265) 605939
【问题讨论】:
-
可以打印
df.head()并分享吗? -
您想将字符串元组转换为整数列表吗?
-
嗨@Mstaino,我将添加 df.head(),谢谢!
-
源数据框很可能在列中有元组,但是当保存到 csv 并重新加载时,它们变成了字符串。 csv 格式实际上是 2d(行和列),因此不能直接存储此类列的额外维度。
pandas对带有 (python) 字符串的列使用对象 dtype
标签: python arrays pandas numpy