我是一名编码初学者,因为这是一个非常简单的问题,我知道一定有答案。然而,我已经搜索了大约半个小时,在谷歌上输入了无数的查询,所有的一切都在我的脑海中飞过
假设我有一个数据框,其中有“姓名”、“爱好”列和两个人,所以有两行。目前,我的业余爱好是“hobby1,hobby2”形式的弦乐。我想把这个改成[“hobby1”,“hobby2”]
hobbies_as_string = df.iloc[0, 2]
hobbies_as_list = hobbies_as_string.split(',')
df.iloc[0, -2] = hobbies_as_list
但是,这属于一个错误,ValueError:当使用iterable设置时,必须具有相等的len键和值。我不明白为什么如果我把业余爱好作为字符串复制,我就可以把业余爱好列作为列表分配,没有问题。我还可以将df.iloc[0,-2]指定为一个字符串,例如“Hey”,这很好。我想这和错误有关。为什么熊猫不让我把它列为一个列表
非常感谢您的帮助和解释
您是否希望
apply
按行将每个值放入列表中或者,如果您不是一个大的lambda exer,那么您可以对整个列执行
str.split()
,这更容易:输出:
使用“at”方法将值替换为列表
另一种方法
用
","
替换、空格,并将hobbiesStrings
值放入列表中这里我使用正则表达式 基本上,我用
","
替换comma \,
后面的空格\s
使用df.assign重写列s
拴在一起
输出
相关问题 更多 >
编程相关推荐