我有一個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