Python将数组拆分为多个克隆
我正在尝试将包含数组数据的csv数据拆分为多列。这适用于大多数数组,因为它们是整数,但如果我尝试拆分以下数组(包含点值),我会遇到问题 这里是一个例子。假设将以下数组数据保存在名为“array”的列中Python将数组拆分为多个克隆,python,pandas,split,Python,Pandas,Split,我正在尝试将包含数组数据的csv数据拆分为多列。这适用于大多数数组,因为它们是整数,但如果我尝试拆分以下数组(包含点值),我会遇到问题 这里是一个例子。假设将以下数组数据保存在名为“array”的列中 {58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5} 如果我采用以下方法 ```蟒蛇 拆分的数据=原始数据[“数组”]。str.split(“\D”,expand=True)。添加前缀(“setrw
{58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5 | 58.5}
如果我采用以下方法
```蟒蛇
拆分的数据=原始数据[“数组”]。str.split(“\D”,expand=True)。添加前缀(“setrwds\ux”)
我得到以下结果
setrwds_x1 setrwds_x2 setrwds_x4 setrwds_x5 setrwds_x7 setrwds_x8 \
0 58 5 58 5 58 5
1 58 5 58 5 58 5
2 58 5 58 5 58 5
3 58 5 58 5 58 5
4 58 5 58 5 58 5
5 58 5 58 5 58 5
6 58 5 58 5 58 5
7 58 5 58 5 58 5
8 58 5 58 5 58 5
9 58 5 58 5 58 5
10 58 5 58 5 58 5
11 58 5 58 5 58 5
12 58 5 58 5 58 5
13 58 5 58 5 58 5
14 58 5 58 5 58 5
15 58 5 58 5 58 5
16 58 5 58 5 58 5
17 58 5 58 5 58 5
它将58.5分为两列,这是错误的。我需要保留58.5
你们有解决问题的建议吗?试试这个
\D
在正则表达式中表示非数字,包括
和
,您只需要在
上显式拆分。您还需要使用str[1:-1]
raw_data["Array"].str[1:-1].str.split("|",expand=True).add_prefix("setrwds_x")
用一个虚拟系列测试了这一点-
#Dummy series
d = ['{58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5}',
'{58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5}',
'{58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5 |58.5}']
dd = pd.Series(d)
out = dd.str[1:-1].str.split("|",expand=True).add_prefix("setrwds_x")
print(out)
为什么不按
|
分隔符拆分?我以前已经试过了。问题是,整个数组被保存为字符串,我应用您的代码行获得以下输出('无法解析位置0处的字符串“{58','发生在索引realwds_x0')在这种情况下,您的数据似乎有一些输入错误。似乎在编辑数组的位置缺少了一个
或
。在“|”符号之前有一个空格。希望它现在变得更清晰。只需添加一个空格。非常感谢。效果很好:)我欠你一个
setrwds_x0 setrwds_x1 setrwds_x2 setrwds_x3 setrwds_x4 setrwds_x5 \
0 58.5 58.5 58.5 58.5 58.5 58.5
1 58.5 58.5 58.5 58.5 58.5 58.5
2 58.5 58.5 58.5 58.5 58.5 58.5
setrwds_x6 setrwds_x7 setrwds_x8 setrwds_x9 setrwds_x10 setrwds_x11
0 58.5 58.5 58.5 58.5 58.5 58.5
1 58.5 58.5 58.5 58.5 58.5 58.5
2 58.5 58.5 58.5 58.5 58.5 58.5