我有一个Python数据框,其中包含以下格式的值的列:数字/数字 - 字母数字。例如:2/39-C-19。我想采取这个列中的值并分割它们,并将它们分配给我的数据框中的新列。将Python数据框的内容拆分为新列
我尝试了一些正则表达式,但我还没有找到排除数据帧索引的好方法。正则表达式'(?:\ d *。)?\ d +'给出了列中包括索引在内的所有数字。
所以,这是我从我的数据帧原始数据的例子:
LOCATION
0 2/39-C-19
1 130/3-A-09
2 1/1-B-11
3 22/5-B-16
4 1/4-A-24
我试图想出一个好办法,所以我有多个列,这样来解析值:
Number1 Number2 Letter Number3
2 39 C 19
130 3 A 9
1 1 B 11
22 5 B 16
1 4 A 24
这里是到目前为止的代码我已经写了:
import pandas as pd
import re
raw_data = 'file.csv'
raw_data_df = pd.read_csv(raw_data)
location_df = raw_data_df.iloc[:,[1]]
location_string = str(location_df)
re_location = re.findall('(?:\d*\.)?\d+', location_string)
print(re_location)
就如何更好地去了解有什么想法这个?我想知道是否我毕竟不需要正则表达式,并且可能需要创建一个循环来遍历列中的值?
谢谢!这正是我正在寻找的。 – mmmgood
我想知道:是否可以使用类似的方法来拆分包含姓氏,名字,首字母(Ex1:Smith,John Ex2:Doe,Jane S)的df列?尝试了以下方法,该方法适用于包含姓氏,名字和中间首字母的姓名,但NaN只出现在名字和姓氏中。有没有一种很好的方法来解释可选的中间初始值? (\ w +),(\ w +)(\ w +)',expand = True) – mmmgood
@mmmgood,是的,我们可以做到这一点,但想想[包含几个词的名字](https://www.google.de/amp/www.sheknows.com/parenting/articles/825167/top-double-baby-names-for -girls-and-boys/amp) – MaxU