【发布时间】:2016-09-29 21:10:07
【问题描述】:
我在这里有一个问题(回答得很好): Python parse dataframe element
很遗憾,我的数据源还有其他情况需要处理。
当前模式是
pattern = r'([^\(]+)(\(([^,]*),(.*)\))?'
trans_field_attr = df['Data Type'].str.extract(pattern, expand=True).iloc[:, [0, 2, 3]]
这可以完美地处理(精度,比例)版本,例如 NUMBER(22,4)。不幸的是,它不会选择括号中只有一个值的任何值。
例如:
0 VARCHAR2(1)
1 VARCHAR2(1)
2 VARCHAR2(1)
3 VARCHAR2(1)
4 VARCHAR2(1)
5 DATE(7)
6 DATE(7)
7 DATE(7)
8 DATE(7)
9 VARCHAR2(1)
10 DATE(7)
11 VARCHAR2(3)
12 VARCHAR2(3)
13 NaN
14 VARCHAR2(3)
15 NUMBER(22,4)
如何改进模式以获取单个值?
抱歉,但我真的很难从 piRSquared 的回答中走得更远......
【问题讨论】:
标签: python regex parsing pandas