old*_*ard 6 python regex loops python-3.x pandas
我试图使用re.split()将pandas数据框中的单个变量拆分为另外两个变量.
我的数据如下:
xg
0.05+0.43
0.93+0.05
0.00
0.11+0.11
0.00
3.94-2.06
Run Code Online (Sandbox Code Playgroud)
我想创造
e a
0.05 0.43
0.93 0.05
0.00
0.11 0.11
0.00
3.94 2.06
Run Code Online (Sandbox Code Playgroud)
我可以使用for循环和索引来完成此操作.
for i in range(len(df)):
if df['xg'].str.len()[i] < 5:
df['e'][i] = df['xg'][i]
else:
df['e'][i], df['a'][i] = re.split("[\+ \-]", df['xg'][i])
Run Code Online (Sandbox Code Playgroud)
然而,这很慢,我不相信这是一个很好的方法,我正在努力提高我的代码/ python理解.
我尝试使用np.where编写它,或使用列表理解或应用lambda进行了各种尝试,但我不能让它运行得太多.我认为我遇到的所有问题都是因为我试图将函数应用于整个系列而不是位置值.
如果有人知道一个比我丑陋的循环更好的方法,我会非常感兴趣.
使用带有扩展参数的 str.split 方法借用此答案: /sf/answers/1032183911/
df = pd.DataFrame({'col': ['1+2','3+4','20','0.6-1.6']})
df[['left','right']] = df['col'].str.split('[+|-]', expand=True)
df.head()
col left right
0 1+2 1 2
1 3+4 3 4
2 20 20 None
3 0.6+1.6 0.6 1.6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |