如何创建包含列名的变量用于Python的groupby函数?
哦,我明白你的问题了!你现在把多个列名拼成了一个单一的字符串赋值给a,但groupby()需要的是一个列名的列表(或者其他可迭代对象),所以它会把这个长字符串当成一个单独的列名去查找,自然会找不到对应的列啦。
解决方法很简单,只要把a定义成一个列表,每个列名作为列表里的独立元素就行:
# 把列名放进列表里,每个元素是单独的列名字符串 a = ['Column1', 'Column2', 'Column4', ..., 'Column30'] # 直接把列表传给groupby就可以了 data = data.groupby(a)['column3'].apply(', '.join).reset_index()
如果你的列名是从某个逗号分隔的字符串里来的(比如你之前可能是复制粘贴了一串列名),也可以把字符串拆分成列表:
# 假设你有个逗号分隔的列名字符串 column_names_str = 'Column1, Column2, Column4, ..., Column30' # 用split方法拆成列表 a = column_names_str.split(', ') # 再执行groupby操作 data = data.groupby(a)['column3'].apply(', '.join).reset_index()
另外还要注意一下列名的大小写哦!你代码里既有Column1这种首字母大写的,又有column3全小写的,要确保这些列名和你DataFrame里实际的列名完全一致,不然也会出现找不到列的错误~
内容的提问来源于stack exchange,提问作者Nirmine
相关产品推荐
相关产品推荐

