gpt4 book ai didi

python - 将数据框的行与字符串列组合

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:18 25 4
gpt4 key购买 nike

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

我有一个 Pandas 数据框:

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=""))) 但这并没有给我想要的结果。我以前做过这个,但我很难记忆起或找到任何关于 SO 的帖子来帮助我。

更新:我之前应该提到这一点:有没有一种方法可以在不指定哪一列的情况下执行此操作? DataFrame 根据上下文变化。

我还更新了数据框并显示了一个 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

关于python - 将数据框的行与字符串列组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45590650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com