Python 在DataFrame中将字从行条目提取到列
我不熟悉熊猫和蟒蛇 我的数据框如下所示:Python 在DataFrame中将字从行条目提取到列,python,pandas,Python,Pandas,我不熟悉熊猫和蟒蛇 我的数据框如下所示: Search query Impressions Clicks iPhone X 2019 10000 50 iPhoneX 2019 15 64 iPhone 11 60 87 Nokia 3310 444
Search query Impressions Clicks
iPhone X 2019 10000 50
iPhoneX 2019 15 64
iPhone 11 60 87
Nokia 3310 444 61
Nokia 3310 best phone 1 30
Search query Impressions Clicks Word
iPhone X 2019 10000 50 iPhone
iPhone X 2019 10000 50 X
iPhone X 2019 10000 50 2019
iPhoneX 2019 15 64 iPhoneX
iPhoneX 2019 15 64 2019
iPhone 11 60 87 iPhone
iPhone 11 60 87 11
Nokia 3310 444 61 Nokia
Nokia 3310 444 61 3310
Nokia 3310 best phone 1 30 Nokia
Nokia 3310 best phone 1 30 3310
Nokia 3310 best phone 1 30 best
Nokia 3310 best phone 1 30 phone
def f(x):
x = x.split(' ')
y = len(x)
# at this point I am not sure how I would apply the multiplication and assign each word in 'Word' column once every word
我正在尝试创建另一个名为Word
的列,该列将为每个搜索查询
行中的每个单词提供值
示例:
Search query Impressions Clicks
iPhone X 2019 10000 50
iPhoneX 2019 15 64
iPhone 11 60 87
Nokia 3310 444 61
Nokia 3310 best phone 1 30
Search query Impressions Clicks Word
iPhone X 2019 10000 50 iPhone
iPhone X 2019 10000 50 X
iPhone X 2019 10000 50 2019
iPhoneX 2019 15 64 iPhoneX
iPhoneX 2019 15 64 2019
iPhone 11 60 87 iPhone
iPhone 11 60 87 11
Nokia 3310 444 61 Nokia
Nokia 3310 444 61 3310
Nokia 3310 best phone 1 30 Nokia
Nokia 3310 best phone 1 30 3310
Nokia 3310 best phone 1 30 best
Nokia 3310 best phone 1 30 phone
def f(x):
x = x.split(' ')
y = len(x)
# at this point I am not sure how I would apply the multiplication and assign each word in 'Word' column once every word
因此,每行乘以列搜索查询中的字符串数,列Word
保存列搜索查询中的每个字符串
我所尝试的:
Search query Impressions Clicks
iPhone X 2019 10000 50
iPhoneX 2019 15 64
iPhone 11 60 87
Nokia 3310 444 61
Nokia 3310 best phone 1 30
Search query Impressions Clicks Word
iPhone X 2019 10000 50 iPhone
iPhone X 2019 10000 50 X
iPhone X 2019 10000 50 2019
iPhoneX 2019 15 64 iPhoneX
iPhoneX 2019 15 64 2019
iPhone 11 60 87 iPhone
iPhone 11 60 87 11
Nokia 3310 444 61 Nokia
Nokia 3310 444 61 3310
Nokia 3310 best phone 1 30 Nokia
Nokia 3310 best phone 1 30 3310
Nokia 3310 best phone 1 30 best
Nokia 3310 best phone 1 30 phone
def f(x):
x = x.split(' ')
y = len(x)
# at this point I am not sure how I would apply the multiplication and assign each word in 'Word' column once every word
感谢您的建议。创建新列Word
由拆分的值填充,最后将值转换为默认索引:
df = df.assign(Word = df['Search query'].str.split()).explode('Word').reset_index(drop=True)
print (df)
Search query Impressions Clicks Word
0 iPhone X 2019 10000 50 iPhone
1 iPhone X 2019 10000 50 X
2 iPhone X 2019 10000 50 2019
3 iPhoneX 2019 15 64 iPhoneX
4 iPhoneX 2019 15 64 2019
5 iPhone 11 60 87 iPhone
6 iPhone 11 60 87 11
7 Nokia 3310 444 61 Nokia
8 Nokia 3310 444 61 3310
9 Nokia 3310 best phone 1 30 Nokia
10 Nokia 3310 best phone 1 30 3310
11 Nokia 3310 best phone 1 30 best
12 Nokia 3310 best phone 1 30 phone
谢谢,我们将查看数据帧。分解!为什么我需要在最后将值转换为默认索引?@JonasPalačionis-我认为这是因为一些pandas函数(如reindex)在使用重复索引时失败了,我认为如果使用默认索引,性能应该会更好。