Python 将数据帧的行与字符串列组合

Python 将数据帧的行与字符串列组合,python,pandas,dataframe,Python,Pandas,Dataframe,我认为这是一个简单的问题,但我今天无法解决这个问题,需要一些帮助 我有一个数据框: df = pd.DataFrame({ 'id': [0, 0, 1, 1, 2], 'q.name':['A'] * 3 + ['B'] * 2, 'q.value':['A1','A2','A3','B1','B2'], 'w.name':['Q', 'W', 'E', 'R', 'Q'], 'w.value':['B1','B2','C3','C1','D2'] })

我认为这是一个简单的问题,但我今天无法解决这个问题,需要一些帮助

我有一个数据框:

df = pd.DataFrame({
    'id': [0, 0, 1, 1, 2],
    'q.name':['A'] * 3 + ['B'] * 2,
    'q.value':['A1','A2','A3','B1','B2'],
    'w.name':['Q', 'W', 'E', 'R', 'Q'],
    'w.value':['B1','B2','C3','C1','D2']
})
看起来像这样

    id  q.name  q.value w.name  w.value
0   0   A   A1  Q   B1
1   0   A   A2  W   B2
2   1   A   A3  E   C3
3   1   B   B1  R   C1
4   2   B   B2  Q   D2
我希望将其转换为

    id  q.name  q.value w.name  w.value
0   0   A A     A1 A2   Q W     B1 B2
1   1   A B     A3 B1   E R     C3 C1
2   2   B       B2      Q       D2
我尝试了
pd.DataFrame(df.apply(lambda s:s.str.cat(sep=”“))
,但没有得到我想要的结果。我以前做过这件事,但我很难回忆起或找到任何有助于我的帖子

更新: 我应该在前面提到:有没有一种方法可以在不指定哪一列的情况下实现这一点?数据帧根据上下文进行更改


我还更新了数据帧并显示了一个
id
字段,因为我刚刚意识到这是可能的。我认为现在,
id
字段上的groupby应该可以解决这个问题。

更新:

In [117]: df.groupby('id', as_index=False).agg(' '.join)
Out[117]:
   id q.name q.value w.name w.value
0   0    A A   A1 A2    Q W   B1 B2
1   1    A B   A3 B1    E R   C3 C1
2   2      B      B2      Q      D2
In [106]: df.groupby('category', as_index=False).agg(' '.join)
Out[106]:
  category      name
0        A  A1 A2 A3
1        B     B1 B2
旧答案:

In [117]: df.groupby('id', as_index=False).agg(' '.join)
Out[117]:
   id q.name q.value w.name w.value
0   0    A A   A1 A2    Q W   B1 B2
1   1    A B   A3 B1    E R   C3 C1
2   2      B      B2      Q      D2
In [106]: df.groupby('category', as_index=False).agg(' '.join)
Out[106]:
  category      name
0        A  A1 A2 A3
1        B     B1 B2

和的可能重复,您能否通过向dataframe及其结果添加另一列来更新问题?由于您不想指定列Hello,谢谢您的回答,但我已更新了上述问题。我再次更新了数据,但您的解决方案仍然有效。谢谢你。