我有一个如下的数据帧:
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席