all_data['Title']= all_data['Name'].str.split(', ', expand=True)[1].str.split('.', expand=True)[0]
有人能解释一下这行代码的含义吗?尤其是涉及到expand=True
和[1]
[0]
。
(this markdown is here to override an error in the answer window interpreter)
```lang-python
import pandas as pd
raw_name = ['Bob, Mr. Ross', 'Alice, Mrs. Algae', 'Larry, Mr. lemon', 'John, Mr. Johnson']
all_data = pd.DataFrame({'Name': raw_name})
# This the OP's line
all_data['Title'] = all_data['Name'].str.split(', ', expand=True)[1].str.split('.', expand=True)[0]
all_data
名称 | 头衔 | |
---|---|---|
0 | Bob, Ross 先生 | 先生 |
1 | Alice, Algae 女士 | 女士 |
2 | Larry, Lemon 先生 | 先生 |
3 | John, Johnson 先生 | 先生 |
expand=True
参数将渲染一组字符串列。因此,在第一次拆分后,您可以再次应用另一个 str.split
方法,因为第一次拆分已经将字符串数据帧渲染成列。如果使用常规的拆分(或 expand=False
),会比较复杂,因为它会呈现一系列列表。
下面有代码示例:
all_data['Name'].str.split(', ', expand=False) # or no expand at all
0 | |
---|---|
0 | [鲍勃,罗斯先生] |
1 | [艾丽斯,藻类夫人] |
2 | [拉里,莱蒙先生] |
3 | [约翰,约翰逊先生] |
all_data['Name'].str.split(', ', expand=True)
0 | 1 | |
---|---|---|
0 | 鲍勃 | 罗斯先生 |
1 | 爱丽丝 | 艾尔吉夫人 |
2 | 拉里 | 柠檬先生 |
3 | 约翰 | 约翰逊先生 |
all_data['Name'].str.split(', ', expand=True)[1].str.split('.', expand=False)
0 | |
---|---|
0 | [Ross先生] |
1 | [Algae女士] |
2 | [Lemon先生] |
3 | [Johnson先生] |
all_data['Name'].str.split(', ', expand=True)[1].str.split('.', expand=True)
0 | 1 | |
---|---|---|
0 | 先生 | Ross |
1 | 夫人 | Algae |
2 | 先生 | Lemon |
3 | 先生 | Johnson |
参考: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.split.html
将分割后的字符串扩展为单独的列。
如果为True,则返回扩展维度的DataFrame / MultiIndex。
如果为False,则返回包含字符串列表的Series / Index。
s = pd.Series(
[
"this is a regular sentence",
]
)
s.str.split(expand=True)
(此文本为一个IT技术示例,展示了一行代码和相应的注释。)0 1 2 3 4
这是一个普通的句子
all_data['Name'].str
返回的特定对象方法。我相信你正在使用Pandas数据框架,你需要查看Pandas文档以了解其对象定义的方法和参数。 - jasonharper