带有集合列的简单 DataFrame:df = pd.DataFrame({'a': [{0,1}, {1,2}, {}], 'b': [{1,2},{2,3,4}, {3}]})df a b0 {0, 1} {1, 2}1 {1, 2} {2, 3, 4}2 {} {3}我想将多个特定的集合列转换为列表列。我正在使用apply,但这不起作用:df[['a','b']].apply(lambda x: list(x)) a b0 {0, 1} {1, 2}1 {1, 2} {2, 3, 4}2 {} {3}不过,它适用于单列/系列:df['a'].apply(lambda x: list(x))0 [0, 1]1 [1, 2]2 []Name: a, dtype: object一个不同的函数,在不涉及列表的不同 DataFrame 上,当然可以按预期在多个列上工作:df2 = pd.DataFrame({'a':[0,1,2], 'b':[3,4,5]})df2[['a','b']].apply(lambda x: x + 1) a b0 1 41 2 52 3 6那么,是否有一个单行可以在不遍历列的情况下完成我想要做的事情?
2 回答

人到中年有点甜
TA贡献1895条经验 获得超7个赞
我想你正在寻找applymap。此外,lambda x: list(x)可以简化为list:
In [5]: df[['a', 'b']].applymap(list)
Out[5]:
a b
0 [0, 1] [1, 2]
1 [1, 2] [2, 3, 4]
2 [] [3]
添加回答
举报
0/150
提交
取消