【发布时间】:2019-04-23 10:36:06
【问题描述】:
我正在尝试使用 re.split() 将 pandas 数据框中的单个变量拆分为另外两个变量。
我的数据如下:
xg
0.05+0.43
0.93+0.05
0.00
0.11+0.11
0.00
3.94-2.06
我要创作
e a
0.05 0.43
0.93 0.05
0.00
0.11 0.11
0.00
3.94 2.06
我可以使用 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])
但是这很慢,我认为这不是一个好方法,我正在努力提高我对代码/python 的理解。
我曾尝试使用 np.where 编写它,或者使用列表推导式或应用 lambda 进行各种尝试,但我无法让它运行得太快。我认为我遇到的所有问题都是因为我试图将函数应用于整个系列而不是位置值。
如果有人知道比我丑陋的 for 循环更好的方法,我会非常感兴趣。
【问题讨论】:
标签: python regex python-3.x pandas loops