Pandas Dataframe 分割字符串

遇到分割后列表中每个子列表中元素个数不同的情况的处理

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

path = "D:\深度学习\python数据分析\pandas\IMDB-Movie-Data.csv"
d1 = pd.read_csv(path)

# 演员人数
print(d1["Actors"])
temp_actors = d1['Actors'].str.split(", ").tolist()
print(temp_actors)
"""actors = []
for temp_actor in temp_actors:
    actors.extend(temp_actor)"""
actors = [i for j in temp_actors for i in j]
print(actors)
print(len(set(actors)))

原Series数据形式

执行分割后结果,观察到列表中每个子列表中元素个数不同

temp_actors =np.array(d1['Actors'].str.split(", ").tolist())
[['Chris Pratt', 'Vin Diesel', 'Bradley Cooper', 'Zoe Saldana'], ['Noomi Rapace', 'Logan Marshall-Green', 'Michael Fassbender', 'Charlize Theron'], ['James McAvoy', 'Anya Taylor-Joy', 'Haley Lu Richardson', 'Jessica Sula'], ['Matthew McConaughey,Reese Witherspoon', 'Seth MacFarlane', 'Scarlett Johansson'], ['Will Smith', 'Jared Leto', 'Margot Robbie', 'Viola Davis'], ['Matt Damon', 'Tian Jing', 'Willem Dafoe', 'Andy Lau'], ['Ryan Gosling', 'Emma Stone', 'Rosemarie DeWitt', 'J.K. Simmons'], ['Essie Davis', 'Andrea Riseborough', 'Julian Barratt,Kenneth Branagh'], ['Charlie Hunnam', 'Robert Pattinson', 'Sienna Miller', 'Tom Holland'], ['Jennifer Lawrence', 'Chris Pratt', 'Michael Sheen,Laurence Fishburne'], ['Eddie Redmayne', 'Katherine Waterston', 'Alison Sudol,Dan Fogler']]

将列表展开,结果示例为

# 方式1
actors = []
for temp_actor in temp_actors:
    actors.extend(temp_actor)"""
# 方式2
actors = [i for j in temp_actors for i in j]
['Chris Pratt', 'Vin Diesel', 'Bradley Cooper', 'Zoe Saldana', 'Noomi Rapace']

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值