如何分离括号中的内容并创建一个新的数据帧列



我有一个如下的数据帧:

df['seat'].head()

输出

seat
-----------------------------------------------
0    45席(1階カウンター4席、6〜8人テーブル1席2階地下それぞれ最大20人)
1                                       nan
2                                       nan
3                                       nan
4                          9席(カウンター9席、個室4席)

我想要的是分离()的内容,并创建一个新列,并将第一个数字保留为另一列。如下所示:

seat number                    seat arrangement
-----------                    -----------------
0     45               1階カウンター4席、6〜8人テーブル1席2階地下それぞれ最大20人
1     nan                                  nan
2     nan                                  nan
3     nan                                  nan
4     9                          カウンター9席、個室4席

我认为一些正则表达式可能需要这样做,但我不知道如何做到这一点。有什么帮助吗?

似乎str.extract可以工作,假设座位号是之前的数字字符,座位排列是括号内的值:

import numpy as np
import pandas as pd
df = pd.DataFrame({
'seat': ['45席(1階カウンター4席、6〜8人テーブル1席2階地下それぞれ最大20人)',
np.nan,
np.nan,
np.nan,
'9席(カウンター9席、個室4席)']
})
new_df = df['seat'].str.extract(r'(d+)席((.*))', expand=True)
new_df.columns = ['seat number', 'seat arrangement']

new_df:

seat number                   seat arrangement
0          45  1階カウンター4席、6〜8人テーブル1席2階地下それぞれ最大20人
1         NaN                                NaN
2         NaN                                NaN
3         NaN                                NaN
4           9                       カウンター9席、個室4席

最新更新