Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-在groupby中连接字符串_Python_Pandas_Group By_Concatenation - Fatal编程技术网

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。