如何从 Pandas Dataframe 中提取多个数字

Dog*_*ace 5 python python-3.x pandas

我有一个如下所示的 DataFrame:

|Index| Dimension |
|-----|-----------|
|0    |1@43X32X34 |
|1    |1@120X80X74|
|2    |2@26X26X32 |
|3    |1@120X80X81|
Run Code Online (Sandbox Code Playgroud)

我想从 Dimension 列中提取数字并将其拆分为多列:

|Index| Amount|Length|Width|Height|
|-----|-------|------|-----|------|
|0    |      1|    43|   32|    34|
|1    |      1|   120|   80|    74|
|2    |      2|    26|   26|    32|
|3    |      1|   120|   80|    81|
Run Code Online (Sandbox Code Playgroud)

如何使用 Python 中的 Pandas 模块做到这一点?谢谢!

sam*_*mmy 4

您可以使用pandas str split和 Expand=True ,分隔符是 @ 和 X,因此传入它们将确保适当的拆分。然后,您可以插入 Index 作为第一列并重写列名称:

M = df.Dimension.str.split('[@X]',expand=True)
M.insert(0,'Index',df.Index)
M.columns = ['Index','Amount','Length','Width','Height']


   Index    Amount  Length  Width   Height
0   0       1         43    32      34
1   1       1        120    80      74
2   2       2         26    26      32
3   3       1        120    80      81
Run Code Online (Sandbox Code Playgroud)