【发布时间】:2021-07-09 10:34:56
【问题描述】:
我有一个如下所示的数据框
df = pd.DataFrame({'val': ['>1234','<>','<1000','<test','31sadj',123,43.21]})
我想创建 3 个新列
val_num - 将仅存储 NUMBER 值与符号一起出现,例如:1234(来自 >1234)和 1000(来自
val_str - 将只存储NUMBER、symbols、ALPHABETS 的混合值,或者只是简单的字母,例如:31sadj。它可以有除>,<,=以外的任何符号
val_symbol - 将仅存储 3 个符号,例如 >、<、=
我尝试了以下但不准确
df['val_SYMBOL'] = df['val'].str.extract(r'([<>=]+)').fillna('=')
df['val_num'] = df['val'].str.extract(r'([0-9]+)')
df['val_str'] = df['val'].str.extract(r'([a-zA-Z0-9\s-]+)')
我希望我的输出如下所示
【问题讨论】:
-
那么什么不好呢?我看到
df['val'].str.extract(r'([<>=]+)').fillna('=')工作正常。 -
另外两个 clumns 正则表达式不能正常工作
标签: python regex pandas string dataframe