簡體   English   中英

拆分具有多種分隔符的列

[英]Splitting a column with more than one kind of separators

我正在使用一個數據集,我需要將其中一列拆分為其他三列。 這個專欄是這樣的:

df2['Measurements'].value_counts(normalize=True)
6.9x6.87x4.16     0.000834
5.42x5.39x3.36    0.000834
6.83x6.86x4.23    0.000834
5.43x5.4x3.38     0.000834
6.11x6.16x3.85    0.000834
                    ...   
5.05x5.07x3.01    0.000278
6.46x6.43x3.94    0.000278
7.7x7.73x4.78     0.000278
8.37x8.41x5.19    0.000278
6.3x6.26x4.1      0.000278
Name: Measurements, Length: 3450, dtype: float64

比我嘗試將它拆分為“X”,就像我在下面使用的代碼一樣:

df2[['Length-mm','Width-mm','Depth-mm']] = df2['Measurements'].str.split('x', n=2, expand=True)

但是當我檢查新列中的值計數時,它告訴我除了“x”之外還有其他分隔符。

df2['Length-mm'].value_counts(normalize=True)
6.44              0.008058
6.8               0.006946
6.47              0.006946
6.43              0.006669
6.48              0.006669
                    ...   
5.57*5.55*3.58    0.000278
7.85*7.89*4.78    0.000278
8.98              0.000278
5.54*5.51         0.000278
4.62              0.000278
Name: Length-mm, Length: 722, dtype: float64

看到某些行具有用“*”分隔的三個值,所以我想創建這些新列並知道是否可能以及如何使用多個分隔符進行拆分。

您可以將正則表達式與str.split一起使用。 你的行應該是:

df2[['Length-mm','Width-mm','Depth-mm']] = df2['Measurements'].str.split(r'x|\*', n=2, expand=True)

請注意,您可以使用|連接任意數量的分隔符。 (這是正則表達式語法中的 OR)。 *必須以\開頭,因為它是正則表達式語法中的特殊字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM