gpt4 book ai didi

python - 在新列中计算数据框中的逗号分隔字符串

转载 作者:行者123 更新时间:2023-12-05 09:32:58 25 4
gpt4 key购买 nike

我有以下 df:

df = pd.DataFrame({'Name': ['John', 'Sara', 'Paul', 'Guest'], 'Interaction': ['share,like,share,like,like,like', 'love,like,share,like,love,like', 'share,like,share,like,like,like,share,like,share,like,like,hug','share,like,care,like,like,like']})

Name Interaction
0 John share,like,share,like,like,like
1 Sara love,like,share,like,love,like
2 Paul share,like,share,like,like,like,share,like,sha...
3 Guest share,like,care,like,like,like

我想创建第三列,将单次交互的数量计算为 int

我做了什么:

df['likes'] = df[df['Interaction'] == 'like'].groupby('Name')['Interaction'].transform(lambda x: x[x.str.contains('like')].count())

我在分享、关怀等方面做了同样的事情但它不起作用!

Name    Interaction                                           likes     shares
0 John share,like,share,like,like,like NaN NaN
1 Sara love,like,share,like,love,like NaN NaN
2 Paul share,like,share,like,like,like,share,like,sha... NaN NaN
3 Guest share,like,care,like,like,like NaN NaN

如何将每次交互计数为 int,然后在最后一列中找到每行的总数?

最佳答案

首先你需要str.split逗号上的列,展开结果创建一个dataframe,stack得到一个系列并使用str。 get_dummies 将为每个不同的单词创建一列,并为系列中的相应值加 1。最后在 level=0 上 sum 回到原来的形状。 join 结果到原始数据框

df = df.join( df['Interaction'].str.split(',', expand=True)
.stack()
.str.get_dummies()
.sum(level=0)
)
print(df)
Name Interaction care hug like \
0 John share,like,share,like,like,like 0 0 4
1 Sara love,like,share,like,love,like 0 0 3
2 Paul share,like,share,like,like,like,share,like,sha... 0 1 7
3 Guest share,like,care,like,like,like 1 0 4

love share
0 0 2
1 2 1
2 0 4
3 0 1

关于python - 在新列中计算数据框中的逗号分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67613400/

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