我正在用nba的数据做一个网络抓取项目。当我抓取的时候,我可以得到所有的信息。然而,所有的统计数据都是作为一个字符串返回的,它将所有的状态都放在一列中。我正试图撕开这条绳子。并在它自己的嵌套区域替换它。希望图像能更好地解释这一点。
我正在使用selenium从https://stats.nba.com/players/traditional/?sort=PTS&dir=-1中抓取网页,因为我计划点击所有的页面
下面是我正在处理的函数:在最后一行中,我希望用我创建的拆分版本替换z2。当我尝试z2 =z2.拆分(‘')时,我得到了错误AttributeError:'list’对象没有属性'split'
new_split = []
for i in player:
player_stats.append(i.text.split('\n'))
for z in player_stats:
new_split.append(z[2].split(' '))```发布于 2019-11-30 22:33:08
如果第二列是字符串,则可以尝试将该字符串拆分为一个列表,将该列表的每个元素转换为一个系列,然后将这个新的数据框架与原始数据框架的前两列连接起来。
df_stats = df["2"].apply(lambda x: x[0].split(" ")).apply(pd.Series)
df_end = pd.concat([df[["0","1"]].reset_index(drop=True), df_stats], axis=1)示例:
df = pd.DataFrame({"0": [1, 2],
"1": ["Name1", "Name2"],
"2":[["HOU 30 80"], ["LA 30 50"]]})
df_stats = df["2"].apply(lambda x: x[0].split(" ")).apply(pd.Series)
df_end = pd.concat([df[["0","1"]].reset_index(drop=True), df_stats], axis=1)
0 1 0 1 2
0 1 Name1 HOU 30 80
1 2 Name2 LA 30 50https://stackoverflow.com/questions/59120714
复制相似问题