为了账号安全,请及时绑定邮箱和手机立即绑定

试图将文本列表转换为小写,但它会将所有内容都转换为 NaN

试图将文本列表转换为小写,但它会将所有内容都转换为 NaN

一只萌萌小番薯 2022-03-09 20:22:03
我目前正在尝试使用文本数据,我在这方面相对较新。我正在尝试使用的列是 cast 列,如下所示:0    [Sam Worthington, Zoe Saldana, Sigourney Weave...1    [Johnny Depp, Orlando Bloom, Keira Knightley, ...2    [Daniel Craig, Christoph Waltz, Léa Seydoux, R...3    [Christian Bale, Michael Caine, Gary Oldman, A...4    [Taylor Kitsch, Lynn Collins, Samantha Morton,...Name: cast, dtype: object 我想要的是降低所有大写字母。但是,当我尝试这样做时,它会将所有内容转换为 NaN 值。这是我所做的简单的事情:data.cast=data.cast.str.lower()这是输出:0      NaN1      NaN2      NaN3      NaN4      NaN5      NaN6      NaN7      NaN8      NaN9      NaN10     NaN11     NaN12     NaN13     NaN14     NaN15     NaN16     NaN17     NaN18     NaN19     NaN20     NaN21     NaN22     NaN23     NaN24     NaN25     NaN26     NaN27     NaN28     NaN29     NaN        ..谁能帮助我了解我做错了什么以及如何解决它?感谢您的时间!!!
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

您尝试使用字符串方法转换包含列表的列。所以你需要创建一个简单的函数,例如:


def lower(l):

    return [x.lower() for x in l]

并使用地图删除大写:


data = pd.DataFrame([{'col':['Titi','Toto','Tutu']},{'col':['Tata','Toto','Tutu']}])

data.col = data.col.map(lower)

data

结果是:


    col

0   [titi, toto, tutu]

1   [tata, toto, tutu]


查看完整回答
反对 回复 2022-03-09
?
LEATH

TA贡献1936条经验 获得超6个赞

简单的方法是使用 listcomp 和map str.lower每个列表:


s[:] = [list(map(str.lower, x)) for x in  s]


Out[915]:

0    [ zoe saldana,  sigourney weave, sam worthington]

1      [ orlando bloom, johnny depp,  keira knightley]

2       [daniel craig,  christoph waltz,  léa seydoux]

3       [ michael caine,  gary oldman, christian bale]

4     [ samantha morton, taylor kitsch,  lynn collins]

dtype: object


查看完整回答
反对 回复 2022-03-09
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号