gpt4 book ai didi

python : How to create columns from words occurred in a column?

转载 作者:行者123 更新时间:2023-11-28 19:53:35 26 4
gpt4 key购买 nike

例如,我有一个数据框,如下所示:

import pandas as pd

my_df = pd.DataFrame({'col1':['A', 'B', 'C', 'A', 'A', 'B'],
'col2':['foo bar', 'bar', 'something foo', 'foo', 'bar', 'foo']})

我想为出现在其中一列中的每个单词生成列,例如 col2 并计算它在该行中出现的次数。

  col1   col2          foo bar something 
0 A foo bar 1 1 0
1 B bar 0 1 0
2 C something foo 1 0 1
3 A foo 1 0 0
4 A bar 0 1 0
5 B foo 1 0 0

我的数据框比这个例子大得多,有更多的词。每一列可以有多个单词。

最佳答案

你需要join + get_dummies :

df = my_df.join(pd.get_dummies(my_df['col2']))
print (df)
col1 col2 bar foo something
0 A foo 0 1 0
1 B bar 1 0 0
2 C something 0 0 1
3 A foo 0 1 0
4 A bar 1 0 0
5 B foo 0 1 0

编辑 - 是必要的 str.get_dummies :

df = my_df.join(my_df['col2'].str.get_dummies(' '))
print (df)
col1 col2 bar foo something
0 A foo bar 1 1 0
1 B bar 1 0 0
2 C something foo 0 1 1
3 A foo 0 1 0
4 A bar 1 0 0
5 B foo 0 1 0

但是如果一行中有多个相同的单词并且需要计算它们:

my_df = pd.DataFrame({'col1':['A', 'B', 'C', 'A', 'A', 'B'], 
'col2':['foo bar foo', 'bar', 'something foo', 'foo', 'bar', 'foo']})
print (my_df)
col1 col2
0 A foo bar foo
1 B bar
2 C something foo
3 A foo
4 A bar
5 B foo

df = my_df.join(my_df['col2'].str.split(expand=True)
.apply(pd.value_counts,1)
.fillna(0)
.astype(int))
print (df)
col1 col2 bar foo something
0 A foo bar foo 1 2 0
1 B bar 1 0 0
2 C something foo 0 1 1
3 A foo 0 1 0
4 A bar 1 0 0
5 B foo 0 1 0

关于 python : How to create columns from words occurred in a column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43875564/

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