Pandas 在某些列中将agg转换为concat字符串,而在其他列中保持最大值

Pandas 在某些列中将agg转换为concat字符串,而在其他列中保持最大值,pandas,Pandas,当ID1被复制时,我想字符串concat ID2,bot只想保持col bool的最大值为True。我这里差不多有了,但是必须有更好的方法,你可以用dict通过agg 你可以用dict传递agg 您正在搜索布尔列的最大值;因此,我将采用这种方法: out = df.groupby('ID1',as_index=False).agg({'ID2': lambda x : ','.join(set(x)),'bool' : 'last'}) Out[322]: ID1 ID2 bool

当ID1被复制时,我想字符串concat ID2,bot只想保持col bool的最大值为True。我这里差不多有了,但是必须有更好的方法,你可以用dict通过agg

你可以用dict传递agg

您正在搜索布尔列的最大值;因此,我将采用这种方法:

out = df.groupby('ID1',as_index=False).agg({'ID2': lambda x : ','.join(set(x)),'bool' : 'last'})
Out[322]: 
  ID1  ID2   bool
0   A  C,D   True
1   B    E  False
输出:

df1 = df.groupby('ID1').agg({
   'ID2': lambda x: ','.join(set(x)),
   'bool': 'max'
}).reset_index()
print(df1)
您正在搜索布尔列的最大值;因此,我将采用这种方法:

out = df.groupby('ID1',as_index=False).agg({'ID2': lambda x : ','.join(set(x)),'bool' : 'last'})
Out[322]: 
  ID1  ID2   bool
0   A  C,D   True
1   B    E  False
输出:

df1 = df.groupby('ID1').agg({
   'ID2': lambda x: ','.join(set(x)),
   'bool': 'max'
}).reset_index()
print(df1)

除了选择您选择的答案作为答案外,还可以随意向上投票。除了选择您选择的答案作为答案外,还可以随意向上投票。