在 python pandas 中组合字符串

Posted

技术标签:

【中文标题】在 python pandas 中组合字符串【英文标题】:combine string in python pandas 【发布时间】:2016-10-22 07:19:15 【问题描述】:

我在分析关于将字符串组合在一起的数据集时遇到问题。 数据框如下所示:

IP      Event
01      check
01      redo
01      view
02      check
02      check
03      review
04      delete

如您所见,IP 包含重复项。我的问题是,怎样才能得到每个IP按顺序组合Event组的结果。比如我要找的结果是:

IP    result
01    check->redo->view
02    check->check
03    review
04    delete

【问题讨论】:

【参考方案1】:

试试这个:

In [27]: df.groupby('IP').agg('->'.join).reset_index()
Out[27]:
   IP              Event
0  01  check->redo->view
1  02       check->check
2  03             review
3  04             delete

In [26]: df.groupby('IP').agg('->'.join)
Out[26]:
                Event
IP
01  check->redo->view
02       check->check
03             review
04             delete

【讨论】:

@EthanBao,不客气! :) 请考虑accepting 最有帮助的答案 - 这也表明您的问题已得到解答【参考方案2】:

用 lambda 试试这个:

df.groupby("IP")['Event'].apply(lambda x: '->'.join(x)).reset_index()


  #  IP           Event
# 0   1  check->redo->view
# 1   2       check->check
# 2   3             review
# 3   4             delete

【讨论】:

以上是关于在 python pandas 中组合字符串的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas 中将字符串列转换为日期的有效方法(在 Python 中),但没有时间戳

python--pandas样式

如何在 pandas 数据框中组合 AND 和 OR 运算符?

从 Pandas 列中删除缩写(字母+点的组合)

python,爬虫,pandas的DataFrame处理后的数据,输出到文本后中间这些数据都没有展开怎么办

在 pandas/python 中,读取存储为字符串的数组