我有一个数据框,其中多个列包含逗号分隔的字符串值。我想用逗号分隔的字符串将其转换为列表。我有办法实现这一目标,但我正在寻找更好的方法。
df = pd.DataFrame({"A": ["test1, test2, test3, test4", "check1, check2, check3, check4", "test1, test2, test3, check4", "test1, test2, test3, check5"], "B": ["a,b,c,d", "e,f,g,h", "i,j,k,l", "m,n,o,p"], "C": ["mtest, mtest1, mtest2, mtest3", "c,d,e,f", "g,h,i,j", "k,l,m,n"]})
>>> df
A B C
0 test1, test2, test3, test4 a,b,c,d mtest, mtest1, mtest2, mtest3
1 check1, check2, check3, check4 e,f,g,h c,d,e,f
2 test1, test2, test3, check4 i,j,k,l g,h,i,j
3 test1, test2, test3, check5 m,n,o,p k,l,m,n
我想要的输出是
>>> df
A B C
0 [test1, test2, test3, test4] [a, b, c, d] [mtest, mtest1, mtest2, mtest3]
1 [check1, check2, check3, check4] [e, f, g, h] [c, d, e, f]
2 [test1, test2, test3, check4] [i, j, k, l] [g, h, i, j]
3 [test1, test2, test3, check5] [m, n, o, p] [k, l, m, n]
我目前实现这一目标的方法是:
>>> df["A"] = df["A"].str.split(',')
>>> df["B"] = df["B"].str.split(',')
>>> df["C"] = df["C"].str.split(',')
我想要对数据框进行一些操作,而不是我去做,而是在每一行中执行此操作,并在每列上应用str.split(因为如果有十个以上的列,则必须为所有列编写此语句str split)。 Lambda可以用于实现此目的,但是它可能是一个较慢的操作。有没有更好的办法?