
> Pandas split column of lists into multiple columns 3个
我不小心用一个错误复制的链接关闭了这个问题.这是正确的: Pandas split column of lists into multiple columns.
假设我有一个数据框,其中一列是一个列表(已知和相同长度)或元组,例如:
df1 = pd.DataFrame( {'vals': [['a','b','c','d'],['e','f','g','h']]}) 即:
vals0 [a,b,c,d]1 [e,f,g,h]
我想将“vals”中的值添加到单独的命名列中.我可以通过遍历行来笨拙地做到这一点:
for i in range(df1.shape[0]): for j in range(0,4): df1.loc[i,'vals_'+j] = df1.loc[i,'vals'] [j]
结果符合要求:
vals vals_0 vals_1 vals_2 vals_30 [a,d] a b c d 1 [e,h] e f g h
有更整洁(矢量化)的方式吗?我尝试使用[]但是我收到了一个错误.
for j in range (0,4) df1['vals_'+str(j)] = df1['vals'][j]
得到:
ValueError: Length of values does not match length of index
看起来Pandas试图将[]运算符应用于系列/数据帧而不是列内容.
解决方法 您可以使用assign,apply和pd.SerIEs:df1.assign(**df1.vals.apply(pd.SerIEs).add_prefix('val_')) 更快的数据方法是使用.values和toList()与数据帧构造函数:
df1.assign(**pd.DataFrame(df1.vals.values.toList()).add_prefix('val_')) 输出:
vals val_0 val_1 val_2 val_30 [a,d] a b c d1 [e,h] e f g h总结
以上是内存溢出为你收集整理的python – 如何最好地将包含列表或元组的Pandas列提取到多个列中全部内容,希望文章能够帮你解决python – 如何最好地将包含列表或元组的Pandas列提取到多个列中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)