python-在groupby中连接字符串
我有这个数据框:python-在groupby中连接字符串,python,pandas,group-by,concatenation,Python,Pandas,Group By,Concatenation,我有这个数据框: df = pd.DataFrame({'A': {0: '1', 1: '2', 2: '4', 3: '7', 4: '7'}, 'B': {0: 'S', 1: 'S', 2: 'D', 3: 'D', 4: 'S'}, 'C': {0: 'XX', 1: 'WX', 2: 'WX', 3: 'XX', 4: 'XW'}, 'Location': {0: '32', 1: '63', 2: '32', 3: '42', 4: '42'}})
df = pd.DataFrame({'A': {0: '1', 1: '2', 2: '4', 3: '7', 4: '7'},
'B': {0: 'S', 1: 'S', 2: 'D', 3: 'D', 4: 'S'},
'C': {0: 'XX', 1: 'WX', 2: 'WX', 3: 'XX', 4: 'XW'},
'Location': {0: '32', 1: '63', 2: '32', 3: '42', 4: '42'}})
我创建了这个函数:
def Transformation(df_, col_names):
# function code (irrelevant for the problem statement)
df_.groupby([col_names,"Location"]) # the line problem
# function code (irrelevant for the problem statement)
return df_ # (irrelevant for the problem statement)
Transformation(z, ["A", "B"]) # How you call the function. col_names has to be more than 1.
#上面的行问题
:如何将groupby参数中的列名称
与位置
连接起来?您可以假设,维度
始终作为包含多个元素的字符串列表提供,如下所示:
Transformation(df, ["A", "B"])
Transformation(df, ["C", "A"])
Transformation(df, ["A", "B", "C", "D"]) # You can assume that the whole abecedary is in the columns of `df` and you can combine them as you wish, but for minimal example purposes I think two is enough
“Location”
无法进入维度
参数内部(出于函数目的),如果这样做,函数将引发错误。因此,假设“Location”
从未出现在输入参数中,而是添加到函数代码的某个地方,当我添加时,“Location”
就是我遇到问题的地方
我使用的方法之一,我不明白为什么不起作用:
df_.groupby(col_names.append("Location"))
这让我想到:
x = ["A","B", "C"]
x_aux = x.append("Location")
x_aux # gives "None"
但是
为什么会这样?在groupby函数中连接它的任何建议?您可以将位置放在列表中,并使用“+”来连接列表
df_.groupby(col_names+["Location"])
您可以将位置放在列表中,并使用“+”对列表进行合并
df_.groupby(col_names+["Location"])
这很简单。你知道为什么我给出的示例
x_aux=x.append(“位置”)
给出了None
?@Chris,append函数更改列表x,但不返回任何值。这就是为什么将x.append(…)赋给x_aux时,x_aux是None,因为新元素直接附加到x上。这非常简单。你知道为什么我给出的示例x_aux=x.append(“位置”)
给出了None
?@Chris,append函数更改列表x,但不返回任何值。这就是为什么将x.append(…)指定给x_aux时,x_aux是None,因为新元素直接附加到x。