我有一个数据集df(250,3)250 raws和三列。我想编写一个循环,将数据框中每列的内容合并为一个具有250个原始数据和1列“ df_single”的单个系列(250,1)。手动操作如下:
df_single = df ['colour'] +“” + df ['model'] +“” + df ['size']
如何使用for循环或非手动创建df_single?
我试图用TypeError编写此代码
df_conc=[]
for var in cols:
cat_list=df_code_part[var]
df_conc = df_conc+" "+cat_list
TypeError:只能将列表(而不是“ str”)连接到列表
我认为如果需要加入3列,那么您的解决方案就非常不错:
df_single = df['colour']+" "+df['model']+" "+df['size']
如果需要用于许多列的通用解决方案,DataFrame.astype
则在必要时DataFrame.add
可用于转换为字符串,用于添加空格,sum
用于串联和最后Series.str.rstrip
删除跟踪空白规范,用于删除对等空白:
cols = ['color','model','size']
df_single = df[cols].astype(str).add(' ').sum(axis=1).str.rstrip()
要么:
df_single = df[cols].astype(str).apply(' '.join, axis=1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句